Giter Site home page Giter Site logo

lesander / magister-calendar Goto Github PK

View Code? Open in Web Editor NEW
11.0 5.0 6.0 657 KB

:date: Automatically plan your Magister appointments in your Google calendar.

Home Page: https://git.io/magister

License: MIT License

JavaScript 100.00%
magister magister-calendar calendar-api google-calendar pushover jxcore node magisterjs

magister-calendar's Introduction

Magister Calendar Logo

NPM Package Information

Automatically plan your Magister appointments in your Google calendar.
Uses Magister.js and the Google Calendar API. Written in NodeJS.


Requirements

  • Unix environment (For example Ubuntu, CentOS or Debian)
  • NodeJS server (nodejs and the node package manager npm)
  • Cronjob (crontab or some other cron program)
  • A Google account
  • Basic programming knowledge and common sense

Although this project wasn't built for it, Magister Calendar can also run on Android (using JXcore) and Windows.

Installing

Make sure that all requirements are present on your system.

1. Enable the Google Calendar API

Before being able to use Magister Calendar, you'll have to enable the Google Calendar API through the Google Developer Console. This tutorial I wrote will help you get through the maze of Google's Developer Console.

2. Download Magister Calendar

You can download the latest release here, or do a git clone https://github.com/lesander/magister-calendar.git. Extract the project in a folder and put the earlier downloaded client_secret.json in the same directory. Your working directory should look somewhat like this:

├── assets/
│   └── tools.js
├── cache/
├── client_secret.json
├── config.json
├── firstrun.js
├── magister-calendar.js
├── package.json
└── .gitignore

Now we're going to install all the dependencies of Magister Calendar. Do so by running npm install inside the working directory. This can take a while, as the package manager will download all the required depencencies, including the dependencies of the dependencies, and so forth.

3. Authorize Magister Calendar

Awesome, you're almost ready to start using Magister Calendar. The last thing we need to do before we start the cronjob, is authorize the application with Google. You can do this easily by firing up a terminal and cd'ing to the project folder and running nodejs firstrun.js. Make sure you've got the JSON file you downloaded earlier in the same directory and have renamed it to client_secret.json. When running JXcore on Android (instead of NodeJS), make sure to manually set the HOME environment variable (eg: HOME=/my/home/path jx firstrun.js).

The script will produce an authorization URL you will need to visit in your browser. Click the link and then proceed to login with your Google account. After authorizing your application, you will be redirected to the redirect URL you provided earlier, with an access token attatched to it. Copy that access token and paste it in the terminal running the firstrun.js script. When it's done obtaining the access and refresh token, you're all set with all the Google authentication stuff.

4. Configuring Magister Calendar

The main configuration file of Magister Calendar is called config.json and uses JSON (duuh). You can change the settings to your liking, I'll explain some of the options here.

{ "calendar": "primary" }

The calendar we're planning the appointments in. Set to primary to use the primary calendar, or another valid calendar id.


{ "period": "default" }

The amount of days to schedule appointments for. When set to default, the remaining days of the current week will be loaded, or when it's past day_is_over_time on friday (or it's weekend) the next work week will be loaded.


{ "day_is_over_time": 16 }

To be used in combination with period="default". The value stands for the hour (in 24h format) when the current day will be seen as over by the default period algorithm calculator. For example, when day_is_over_time=16, the current day will be seen as over, after 16:00 local time.


{ "magister_url": "", "magister_username": "", "magister_password": "" }

These three settings are basically the only required settings before you can use Magister Calendar. magister_url should be the full URL to the Magister 6 website you normally login to, for example https://dspierson.magister.net.


"pushover": {
  "enabled": false,
  "token": "",
  "user": "",
  "device" : ""
}

Change these settings to send push notifications to i.e. your mobile device with Pushover. Create your account with Pushover to get started. If you want to use Pushover with Magister Calendar, you will have to enable it by changing false to true. In order to get your token, create an application. The API token that shows up has to go in the token field. Your user key will be available on the home screen of Pushover. Of course you want to receive your push notifications somewhere. Install one of the Pushover applications and create a device name. The exact device name should match the device field in order to work.


{ "remove_cancelled_classes": true }

Can be either true or false. When set to true, Magister Calendar will cancel all appointments on your calendar which have been cancelled in Magister. When set to false, only the title of the appointment will be changed.


{ "blacklist": ["", "KWT"] }

Appointments with descriptions matching items in the blacklist will not be planned in your calendar. By default, appointments from Magister with empty descriptions and with the description "KWT" will be ignored.


{ "reminders": [{"method": "popup", "minutes": 5}] }

The reminders array can be used to get up to 5 different reminders for every appointment. Available methods are popup, email and sms. The minutes key stands for the amount of minutes before the start of the appointment, when the reminder will be sent. For more information see the reminders overrides at the Google Calendar API docs.


The default config.json file can be found in the root of the project's folder.

Please note that before setting up a cronjob, it'd be clever to try out Magister Calendar with your configuration manually, by running nodejs /path/to/magister-calendar.js and checking the result for any thrown notices, warnings and errors.

5. Setting up the cronjob

Open your favourite cronjob manager and add the command nodejs /path/to/magister-calendar.js to the cron file. You should not make the cronjob run more than once per minute, because Magister Calendar can take up to a minute to finish executing.

In this example, we'll be using crontab, one of the most common cronjob managers. To start editing your cron file, run crontab -e. Add the following line at the end of the file to execute Magister Calendar every minute: */1 * * * * cd /path/to/magister-calendar; nodejs magister-calendar.js > cron.log. For more on the crontab syntax, see this article or run man crontab in a terminal.

⚠️ Note that when using JXcore on Android, you'll have to manually set your HOME path before running Magister Calendar. You can either permanently set this in your ~/.profile, or define it every time before running Magister Calendar: HOME=/my/home/directory jx magister-calendar.js.

Using Magister Calendar

Once you've got the cronjob up and running (or ran magister-calendar.js successfully at least once), you can check your filled in calendar at Google Calendar or on your favourite calendar application synced with Google Calendar.

iOS 9 native Calendar app examples

Contributing

If you'd like to contribute to Magister Calendar or file a bug or feature request, please head over to the issue tracker or open a pull request.

⚠️ Please note that before opening a new issue, make sure that you're using the latest version of MagisterJS, since a lot of problems with logging in to Magister have to do with outdated versions of that package. To update, run npm install magister.js --save inside the folder where you have Magister Calendar installed.

License & Disclaimer

This software is open-sourced under the MIT Licence (see LICENSE for the full license). So within some limits, you can do with the code whatever you want. However, if you like and/or want to re-use it, I'd really appreciate a reference to this project page.

The software is provided as is. It might work as expected - or not. Just don't blame me.

References & Sources

Google Developers - Calendar API Home: https://developers.google.com/google-apps/calendar/

Google Developers - Console: https://console.developers.google.com/

MagisterJS - Project Home: http://simplyapps.nl/MagisterJS/

MagisterJS - Documentation: http://simplyapps.nl/MagisterJS/docs/

magister-calendar's People

Contributors

lesander avatar lieuwex avatar thijsray avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

magister-calendar's Issues

New magister.js version

I don't know if this is automatically updated tbh, but magister.js has got 2 new critical updates today (the latest version is 1.8.3 now).

The old one couldn't login anymore and fullday appointments were broken.

Just wanted to let you know 😄

Invalid Callback

Hello,

I am trying to setup the magister calendar, but I can't get it to work, here is my terminal log:

$ node firstrun.js
Authorize this app by visiting this url: https://accounts.google.com/o/oauth2/auth?access_type=offline&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar.readonly%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar&response_type=code&client_id=267517455031-t0k1j4afk0horg2fnf86sl0sns42ij5o.apps.googleusercontent.com&redirect_uri=http%3A%2F%2Flocalhost%2Fcallback
Enter the code from that page here: MY CODE!
fs.js:127
throw new ERR_INVALID_CALLBACK();
^
TypeError [ERR_INVALID_CALLBACK]: Callback must be a function
at maybeCallback (fs.js:127:9)
at Object.writeFile (fs.js:1123:14)
at storeToken (/Users/Koray/Desktop/magister-calendar-master/firstrun.js:136:6)
at /Users/Koray/Desktop/magister-calendar-master/firstrun.js:116:7
at /Users/Koray/Desktop/magister-calendar-master/node_modules/google-auth-library/lib/auth/oauth2client.js:154:5
at Request._callback (/Users/Koray/Desktop/magister-calendar-master/node_modules/google-auth-library/lib/transporters.js:106:7)
at Request.self.callback (/Users/Koray/Desktop/magister-calendar-master/node_modules/google-auth-library/node_modules/request/request.js:187:22)
at Request.emit (events.js:182:13)
at Request. (/Users/Koray/Desktop/magister-calendar-master/node_modules/google-auth-library/node_modules/request/request.js:1044:10)
at Request.emit (events.js:182:13)

Thanks for your help!

error on firstrun.js

when running the firstrun.js file with the client_secret.json file in the correct file directory I get this error:

Testing calendar authorization.
The API returned an error: Error: unauthorized_client

I redid the authorization for the webapp on the google devolerpsconsole multiple times. Tried changing names and authorized redirecting-url but all returns the same error. Also tried without the authorized redirecting-url but the error then returned is:

/etc/magister-calendar/firstrun.js:63
  var redirectUrl = credentials.web.redirect_uris[0];
                                                 ^

TypeError: Cannot read property '0' of undefined
    at authorize (/etc/magister-calendar/firstrun.js:63:50)
    at processClientSecrets (/etc/magister-calendar/firstrun.js:48:3)
    at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:380:3)

I currently am running the magister-calendar client on a Ubuntu 16.04 server, all required software is installed, I previously ran the magister-calender client but found it running into other errors (before that it did really well, thx for that though) so decided to do a reinstall. Didn't seem to quite help after all...

I cannot provide the previous errors since I deleted the entire magister-calendar folder before doing a reinstall. also I couldn't find any documents in the cache folder, also after engaging debugging mode.

looking forward to a response.

contents of my config.json

{
  "debug": true,
  "calendar": "primary",
  "period": "default",
  "day_is_over_time": 16,
  "magister_url": "*************.magister.net",
  "magister_username": "***********",
  "magister_password": "***********",
  "pushover": {
    "enabled": false,
    "token": "",
    "user": "",
    "device": ""
  },
  "remove_cancelled_classes": true,
  "blacklist": ["beweginsonderwijs", "KWT"],
  "reminders": [
    { "method": "popup", "minutes": "5" }
  ]
}

It stopped working 2 days ago...

I don't know if this is a problem with my school's network but since 2 days ago I get an error;

Could not login to magister. {"0":"I","1":"n","2":"v","3":"a","4":"l","5":"i","6":"d","7":" ","8":"A","9":"P","10":"I","11":" ","12":"k","13":"e","14":"y"}

What could I do to fix this?

Cancelled Classes not being removed

Cancelled classes are not being removed from google calendar, The script seems to get the appointments, though cancelled, from magister, and doesn't seem to understand that they are cancelled.

The difference visible in api response (debug) compared to a regular appointment is that the status = 4, and scrapped= true, where regular appointments seem to always have status = 1 and scrapped = false.

Deels foutmeldingen bij het inlezen van de afspraken.

Ik dacht, laat ik maar een nieuw lijntje maken omdat het vorige probleem wel is opgelost maar nu komen er bij het binnenhalen van de afspraken 2 foutmeldingen meerdere malen voor, te weten:

[!] 7:17:39 5830438 Error creating appointment. {"errors":[{"domain":"usageLimits","reason":"rateLimitExceeded","message":"Rate Limit Exceeded"}],"code":403,"message":"Rate Limit Exceeded"}

en

[!] 7:17:42 5830444 Error creating appointment. {"errors":[{"domain":"global","reason":"backendError","message":"Backend Error"}],"code":503,"message":"Backend Error"}

Vraag, wat doet hij met de foutmeldingen? Komen ze wel deels in de Google Agenda terecht of niet?

Of willen jullie dat ik eerst 1.6.0 installeer?

Groeten,

Marco.

Magister login werkt niet :-(

Hoi ....,
Ik krijg nu iedere keer de zelfde error. Zie hier beneden. En ik heb MagisterJS geupdate!
Kun je dit oplossen? Ik weet zelf daar niet genoeg JS voor. :-)
Alvast bedankt! Werkte normaal SUPER!
Log:
[*] 16:37:7 Magister Calendar v1.8.3 started. [*] System Time: 4:37:07 PM, date: Mon, 25 Mar 2019 15:37:07 GMT [*] 16:37:7 Debugging has been disabled. [*] 16:37:7 Using default period to fetch appointments for. [*] 16:37:7 Determined period is: From Tue Mar 26 2019 16:37:07 GMT+0100 (CET) To Fri Mar 29 2019 16:37:07 GMT+0100 (CET). [*] 16:37:7 Google OAuth2 token is valid. [*] 16:37:7 Created cache folder. [!] 16:37:7 Could not login to magister. {"message":"The requested resource does not support http method 'DELETE'."}

KWT uren wegfilteren

Hi sander,

Ik gebruik magister-calendar nu al een tijdje, en ben er erg blij mee 😄. Merk echter al een tijdje dat de KWT (niet ingeplande lessen) alsnog in de agenda verschijnen. Naar mijn weten is dit iets dat werd voorkomen. Klopt dit? Of is dit uit de code gehaald?

Ik ben op dit moment niet in staat om te kijken welke versie ik heb. Zal dat eind van de middag doen.

Invalid_Grant bij firstrun

Hallo,

Sinds kort doet het programma het bij mij niet meer. Ik heb alles verwijderd en probeerde hem opnieuw te installeren maar nu krijg ik een error bij firstrun.

Testing calendar authorization. The API returned an error: Error: invalid_grant

Mvg, Bruce

Magister authentication no longer working?

Getting the following error upon trying to run the program:
magister-calendar_1 | [!] 21:20:41 Could not login to magister: "Invalid username"

Seems to be occurring ever since the new Magister authentication page. (or 1 - 2 days ago, could've sworn to see some Pushover notifications even with the new Magister page)
@jvdoorn I know you fixed some issues months ago and I noticed you've recently worked on MagisterJS, would you be so kind and take a look at this?

Inloggen lukt maar daarna komen foutcodes waar ik geen verstand van heb

Hallo,

Ik ben compleet nieuw in deze wereld en ben bezig om dit voor mijn dochter op te zetten. Zij moet een betere planning maken voor zichzelf en toen dacht ik dat het handig is om de huiswerkafspraken automatisch in de Google Agenda binnen te laten komen en dat zij m.b.v. kleuren aan kan geven of iets maakwerk, leerwerk of een toets is. Het gaat helemaal goed tot het laatste gedeelte, het inlezen van de gegevens. Ook het inloggen in magister lukt. Zie hieronder het resultaat.

C:\Users\XXX\Documents\magister>node magister-calendar.js
[*] 12:35:42 Magister Calendar v1.5.1 started.
System Time: 12:35:42
[*] 12:35:42 Using default period to fetch appointments for.
[*] 12:35:42 Determined period is:
From Wed Jun 01 2016 12:35:42 GMT+0200 (West-Europa (zomertijd))
To Fri Jun 03 2016 12:35:42 GMT+0200 (West-Europa (zomertijd)).
[*] 12:35:42 Google OAuth2 token is valid.
C:\Users\XXX\Documents\magister\node_modules\magister.js\lib\node\magister-node.js:3441
            setSessionId(/[a-z\d-]+/.exec(r.headers["set-cookie"][0])[0]);
                                                                 ^

TypeError: Cannot read property '0' of undefined
    at C:\Users\xxx\Documents\magister\node_modules\magister.js\lib\node\magister-node.js:3441:66
    at Request._callback (C:\Users\xxx\Documents\magister\node_modules\magister.js\lib\node\magister-node.js:5381:16)
    at Request.self.callback (C:\Users\xxx\Documents\magister\node_modules\magister.js\node_modules\request\request.js:198:22)
    at emitTwo (events.js:87:13)
    at Request.emit (events.js:172:7)
    at Request.<anonymous> (C:\Users\xxx\Documents\magister\node_modules\magister.js\node_modules\request\request.js:1073:14)
    at emitOne (events.js:82:20)
    at Request.emit (events.js:169:7)
    at IncomingMessage.<anonymous> (C:\Users\xxx\Documents\magister\node_modules\magister.js\node_modules\request\request.js:1019:12)
    at emitNone (events.js:72:20)

Aangezien ik niet in deze programmaeertaal thuis, zou ik het zeer op prijs stellen als iemand mij hiermee verder kan helpen.

Met vriendelijke groet en alvast bedankt,

Marco

Invalid Credentials

Als ik magister-calendar.js probeer te laden, krijg ik een foutmelding per les:

Error creating appointment. {"errors":[{"domain":"global","reason":"authError","message":"Invalid Credentials","locationType":"header","location":"Authorization"}],"code":401,"message":"Invalid Credentials"}

Het heeft eerst gewerkt, volgensmij heeft dit te maken met Google

Groeten, Mij

OngeldigeSessieStatus

Ik krijg de foutmelding:

Could not login to magister. {"fouttype":"OngeldigeSessieStatus","omschrijving":null}

Wat kan ik hier tegen doen?

Error requesting new Google OAuth2 token

Last login: Wed Jul 12 08:38:46 on console
iMac-van-K:~ ksuler$ /Users/ksuler/Desktop/Calendar.command ; exit;
[] 14:46:39 Magister Calendar v1.8.3 started.
[
] System Time: 14:46:39, date: Thu, 13 Jul 2017 12:46:39 GMT
[] 14:46:39 Debugging has been disabled.
[
] 14:46:39 Using default period to fetch appointments for.
[] 14:46:39 Determined period is:
From Thu Jul 13 2017 14:46:39 GMT+0200 (CEST)
To Fri Jul 21 2017 14:46:39 GMT+0200 (CEST).
[
] 14:46:39 Google OAuth2 token has expired. Requesting a new one.
/Users/ksuler/Desktop/magister-calendar-master/magister-calendar.js:219
tools.log("critical", "Problem requesting new OAuth2 token: "+result.error.errors[0].message, result.error);
^

TypeError: Cannot read property '0' of undefined
at Request._callback (/Users/ksuler/Desktop/magister-calendar-master/magister-calendar.js:219:88)
at Request.self.callback (/Users/ksuler/Desktop/magister-calendar-master/node_modules/request/request.js:198:22)
at emitTwo (events.js:125:13)
at Request.emit (events.js:213:7)
at Request. (/Users/ksuler/Desktop/magister-calendar-master/node_modules/request/request.js:1082:10)
at emitOne (events.js:120:20)
at Request.emit (events.js:210:7)
at IncomingMessage. (/Users/ksuler/Desktop/magister-calendar-master/node_modules/request/request.js:1009:12)
at emitNone (events.js:110:20)
at IncomingMessage.emit (events.js:207:7)
logout
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.
Deleting expired sessions...none found.

[Proces voltooid]

invalid_grant

I have been using this project for around 2 years now and it seems to have broken just recently. I am not getting the error

$ node firstrun.js
Testing calendar authorization.
The API returned an error: Error: invalid_grant

This seems to be a problem with google but im not sure how i can debug this and if this project is still being ran.

Could't login

Hey, I was updating the appointements when this happend:
[!] 23:9:32 Could not login to magister. {"foutcode":"4N3NZYR","omschrijving":"Er is een onbekende fout opgetreden."}

It's wierd, because i tested te login details and it should work can someone help me?

Nieuwe foutmelding bij inlezen (versie 1.7.0)

Daar ben ik weer.
Bij versie 1.7.0, krijg ik nu de volgende foutmelding:

[*] 15:31:33 5830434 Appointment is in cache.
[*] 15:31:34 5830434 Appointment has changed.
[*] 15:31:34 5830435 Appointment is in cache.
[*] 15:31:34 5830435 Appointment has changed.
[*] 15:31:34 5830448 Appointment is in cache.
[*] 15:31:34 5830450 Appointment is in cache.
[*] 15:31:34 5830450 Appointment has changed.
[*] 15:31:34 5830437 Appointment is in cache.
[*] 15:31:34 5830437 Appointment has changed.
[*] 15:31:34 5830459 Appointment is in cache.
[*] 15:31:34 5830456 Appointment is in cache.
[*] 15:31:34 5830456 Appointment has changed.
[*] 15:31:34 5830462 Appointment is in cache.
[*] 15:31:34 5805568 Appointment is in cache.
[*] 15:31:34 5830432 Appointment is in cache.
[*] 15:31:34 5830452 Appointment is in cache.
[*] 15:31:34 5830441 Appointment is in cache.
[*] 15:31:34 5830454 Appointment is in cache.
[*] 15:31:34 5830454 Homework has changed.
c:\Users\***\Documents\magister\assets\tools.js:66
    if (config.enabled !== true) {
              ^

TypeError: Cannot read property 'enabled' of undefined
    at Object.module.exports.sendPushMessage (c:\Users\***\Documents\magister\assets\tools.js:66:15)
    at parseAppointments (c:\Users\***t\Documents\magister\magister-calendar.js:421:15)
    at c:\Users\Lizet\Documents\magister\magister-calendar.js:271:5
    at c:\Users\***\Documents\magister\node_modules\magister.js\lib\node\magister-node.js:2750:18
    at c:\Users\***\Documents\magister\node_modules\magister.js\lib\node\magister-node.js:2725:20
    at Request._callback (c:\Users\***\Documents\magister\node_modules\magister.js\lib\node\magister-node.js:5389:16)
    at Request.self.callback (c:\Users\***\Documents\magister\node_modules\magister.js\node_modules\request\request.js:198:22)
    at emitTwo (events.js:87:13)
    at Request.emit (events.js:172:7)
    at Request.<anonymous> (c:\Users\***\Documents\magister\node_modules\magister.js\node_modules\request\request.js:1073:14)

Kunnen jullie daar iets mee?
Tweede vraag. Alle items die daarvoor zijn ingelezen worden die wel verwerkt in de agenda of wordt er een bestand aangemaakt die na dit proces wordt ingelezen?

Groeten,

Marco.

Calendar ID en verwijderde afspraken

Hoi Sander,
Gaaf stukje programmeer werk hier!
Ik heb wel een probleempje, ik heb namelijk de calender ID aangepast zodat ik de afspraken gescheiden kan houden. Alleen blijven ze in default staan. Daarom heb ik een aantal afspraken verwijderd om te checken of ze dan wel goed worden geplaatst, maar verwijderde afspraken keren blijkbaar ook niet terug. Heb jij een idee hoe ik dit kan fixen?

^
Marijn

Error requesting new Google OAuth2 token

Hey,

Recently, I have problems loading the appointments to my google calendar. Someone else on the forum had the same question and I followed every step, but it did not work for me.

This is my crash log that returned after I typed node magister-calendar.js in my terminal.
crash_1528729744087.log

Do you have any idea how I could solve this problem?

Inloggen lukt maar daarna komen foutcodes waar ik geen verstand van heb.

Hallo,

Ik ben compleet niet in deze wereld en ben bezig om dit voor mijn dochter op te zetten. Zij moet een betere planning maken voor zichzelf en toen dacht ik dat het handig is om de huiswerkafspraken automatisch in de Google Agenda binnen te laten komen en dat zij m.b.v. kleuren aan kan geven of iets maakwerk, leerwerk of een toets is. Het gaat helemaal goed tot het laatste gedeelte, het inlezen van de gegevens. Ook het inloggen in magister lukt. Zie hieronder het resultaat.

C:\Users\XXX\Documents\magister>node magister-calendar.js
[*] 12:35:42 Magister Calendar v1.5.1 started.
System Time: 12:35:42
[*] 12:35:42 Using default period to fetch appointments for.
[*] 12:35:42 Determined period is:
From Wed Jun 01 2016 12:35:42 GMT+0200 (West-Europa (zomertijd))
To Fri Jun 03 2016 12:35:42 GMT+0200 (West-Europa (zomertijd)).
[*] 12:35:42 Google OAuth2 token is valid.
C:\Users\XXX\Documents\magister\node_modules\magister.js\lib\node\magister-node.js:3441
            setSessionId(/[a-z\d-]+/.exec(r.headers["set-cookie"][0])[0]);
                                                                 ^

TypeError: Cannot read property '0' of undefined
    at C:\Users\xxx\Documents\magister\node_modules\magister.js\lib\node\magister-node.js:3441:66
    at Request._callback (C:\Users\xxx\Documents\magister\node_modules\magister.js\lib\node\magister-node.js:5381:16)
    at Request.self.callback (C:\Users\xxx\Documents\magister\node_modules\magister.js\node_modules\request\request.js:198:22)
    at emitTwo (events.js:87:13)
    at Request.emit (events.js:172:7)
    at Request.<anonymous> (C:\Users\xxx\Documents\magister\node_modules\magister.js\node_modules\request\request.js:1073:14)
    at emitOne (events.js:82:20)
    at Request.emit (events.js:169:7)
    at IncomingMessage.<anonymous> (C:\Users\xxx\Documents\magister\node_modules\magister.js\node_modules\request\request.js:1019:12)
    at emitNone (events.js:72:20)

Aangezien ik niet in deze programmaeertaal thuis, zou ik het zeer op prijs stellen als iemand mij hiermee verder kan helpen.

Met vriendelijke groet en alvast bedankt,

Marco

Server lesander.me onvindbaar

Bij stap 3 moet je toestaan dat lesander.me gebruik kan maken van je google agenda en als je dan op toestaan klikt, word je doorgestuurd naar een ander pagina. Daar moet dan een code staan, maar het probleem is dat ik een foutmelding krijg. Er staat dat het openen van de pagina is mislukt omdat de server lesander.me onvindbaar is.
Wat kan ik hier aan doen?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.