Using Google Calendar node - authorisation not working

I'm trying to use Google Calendar node to access calendar (to display incoming events etc).
Unfortunately, I'm unable to authorize. I've tried:

  • using different google accounts (one with 2FA and one without it)
  • using different machines running NR (local PC and RPi)

I'm always getting message Authorised - you can close this window and return to Node-RED in the end but when returned to NR editor, Google Calendar node shows only Add new google-credentials... on the list of accounts, so auth info is not stored preventing me from using that node.

Any clue?
Thanks

1 Like

Hmm, no one is using Google nodes? Or no one is having issues with it and I'm The One?

Those are my steps - as per link with instructions:

  1. https://developers.google.com/api-client-library/javascript/start/start-js#Getkeysforyourapplication
  2. To acquire OAuth 2.0 credentials for authorized access, do the following:
    Open the Credentials page in the API Console.
  3. https://console.developers.google.com/apis/credentials
  4. Create credentials blue dropdown
  5. OAuth Client ID
  6. Web application
  7. fill fields:
  • name -> test name
  • Authorized redirect URIs -> http://node-red.example.com:1880/google-credentials/auth/callback [enter]
  1. popup will appear with Here is your client ID and Here is your client secret which I enter to Google Calendar node (copy/paste through Notepad to remove extra spaces/new lines added by this dialog)
  2. Then browser asks me to let me leave the page (as credentials are not stored in the node so NR marks the flow as changed preventing from accidental page closing)
  3. Google account picker screen appears
  4. example.com wants to access your Google account -> Allow
  5. back to node-red.example.com:1880 with plain text Authorised - you can close this window and return to Node-RED
  6. Opening http://192.168.1.245:1880/ (or http://node-red.example.com:1880/, doesn't matter), adding Google Calendar node (which was removed as it was not stored), the list of stored credentials is empty, can't use that node.

You don’t say if you have actually enabled the API as per the nodes ReadMe

1 Like

Google+ API? Yes. With API disabled there is no Authorised success message in step 12.

It's also enabled.
2018-11-14

1 Like

I have the same issue. It worked for me for more than a year until mid of November '19. I guess it's due to the module using v36 of nodejs Google API. Latest version is v46 as of this writing. Sadly the author of node-red-contrib-google-oauth2 doesn't respond, I had opened an issue at guthub https://github.com/pckhib/node-red-contrib-google-oauth2/issues/5 . I don't know how to update that library within the module.

Was this ever resolved? I am having the same issue now.

Same here- trying node-red-node-google.

Reach end of authentication on ...example.com, close page but auth details not updated.

Got mine running on docker at 127.0.0.1:1880 or whatever default was. Setup an app in google, added calendar api only. Following JS guide says to add redirect url to app(127.0.0.1:1880/callback or whatever) which I did. Gone to app create credentials page, create OAuth Id credentials, then copy and paste generated credentials into nodered config and click authorize, follow login process until redirected back to 127.0.0.1:1880/callback or whatever then it's done. Close node configuration dialog. This should then mean when you open a calendar node it will now have Google listed in the drop down above the original Add a new account option.
My problem now is the nodes fail to get any events, although they do validate the calendar ID I'm using. Guess it's related to old api usage as mentioned above.

Try node-red-contrib-google-oauth2, it works great! The " UnhandledPromiseRejectionWarning" issue has been resolved.

1 Like

Events loading fine, using Event Trigger, and Next Event nodes successfully, not sure what I changed, ended up removing all the google calendar nodes (had 2 modules installed but now just this one) and adding just what I needed.