Google cloud Url for OAuth verification with http-node

Hello
I am currently experimenting with the Google Nodes. In the process, I noticed that the update of the Contact node does not work properly. If I only patch the middle name, the first and last name are also overwritten with the value. That’s not so good. Now I want to use an http node instead. Unfortunately, I am missing the Google Authorisation and Google Token URL for logging in via OAuth2. I can’t read them out of the Google node, although they have to be used there as well.
Can someone please tell me the two URLs to set up the credential for the http-node?

Hi @UweG, I am sorry for the trouble with the Google Contact node and have added this to my task list for a closer look.

The scopes used by the Google Contact node can be found here. At the time of writing, it would use the https://www.googleapis.com/auth/contacts scope.

The URLs and additional values are shared by all Google nodes and can be found here. So:

  • Authorization URL: https://accounts.google.com/o/oauth2/v2/auth
  • Access Token URL: https://oauth2.googleapis.com/token
  • Auth URI Query Parameters: access_type=offline&prompt=consent
  • Authentication: body

Hope this helps!

Thank’s @MutedJam
It’s no trouble, more trial and error.
If no one tests the node, no changes can be made in case of errors.
You are doing a great job and I wish I knew 1/10 of your knowledge.
I will try out and give feedback if it’s done.

1 Like

Hey @UweG, sorry for the late response but I have now looked into what exactly is happening here. When updating a contact, n8n would send the following response to the Google People API (this endpoint in particular):

{
    "headers": {
        "Content-Type": "application/json"
    },
    "method": "PATCH",
    "body": {
        "etag": "%EgUBAi43PRoEAQIFByIMRkFLL0FJS2h1SzA9",
        "names": [{
            "middleName": "Foo"
        }]
    },
    "qs": {
        "personFields": "names",
        "updatePersonFields": "names"
    },
    "uri": "https://people.googleapis.com/v1/people/c9096593849503858935:updateContact",
    "json": true
}

So n8n would not send a new value for the first or last name field but would indicate the names fields are being updated (as per the API documentation linked above there doesn’t seem to be a way to only specify the middle name in updatePersonFields). Meaning it’s Google’s own logic that kicks in here.

With that in mind, I think my suggestion would be to simply use two Contact nodes here, one to read the existing given name and family name and then another one to update the middle name (that also re-uses the given name and family name from the previous node) like so: