4

I am trying to use a server for server authentication through the google calendar API. In the documentation they mention you can impersonate a user. I have added owner permissions to the account I want to impersonate and made sure the domain-wide delegation is enabled. From what I have read, the 'user@example' should specify the impersonator, but it does not work. I have all the functions of creating events etc working, but I can't get it to be from an email other than the randomly generated google one.

Here's my code:

var google = require('googleapis');
var calendar = google.calendar('v3');
var scopes = ['https://www.googleapis.com/auth/calendar'];
var key = require ('./xxx.json'); // private json
console.log("Calendar Service connected");
var jwtClient = new google.auth.JWT(
 key.client_email, 
 null, 
 key.private_key, 
 scopes,
 '[email protected]'
);
jwtClient.authorize(function(err, token) {
 if(err) { 
 //console.log(err);
 }
 console.log('token',token);
 //listCalendars(jwtClient);
});
module.exports = {};
Andrei
1,3712 gold badges18 silver badges41 bronze badges
asked Sep 1, 2017 at 7:59
2
  • You might want to follow the possible solutions in this reported issue. You might have implemented your code differently and also make sure to Enable Domain-Wide Delegation for your service account. Hope this helps. Commented Sep 1, 2017 at 16:10
  • See also stackoverflow.com/q/27956244/488666 Commented Jul 1, 2019 at 11:22

1 Answer 1

1

I got it to work after:

  1. Enabling domain-wide delegation
  2. Adding user to the service account as the owner
  3. Most importantly: Going onto google admin and giving api access to the service account
Andrei
1,3712 gold badges18 silver badges41 bronze badges
answered Sep 1, 2017 at 16:48
Sign up to request clarification or add additional context in comments.

2 Comments

I believe we've set this up but can't get it to work. @dan-wolfgram can you provide some clarity around those steps?
Can you please provide some more detail about which scopes you enabled with the domain-wide delegation? Also, please provide which APIs you enabled.

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.