使用 google 日历 API oauth2 服务帐户 (node.js) 模拟用户

Impersonate user with google calendar API oauth2 service account (node.js)

我正在尝试通过 google 日历 API 使用服务器进行服务器身份验证。在他们提到的文档中,您可以模拟用户。我已将所有者权限添加到我要模拟的帐户,并确保启用域范围的委派。据我所知,'user@example' 应该指定模仿者,但它不起作用。我拥有创建事件等所有功能,但我无法从随机生成的 google 电子邮件以外的电子邮件中获取它。

这是我的代码:

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,
  'user@example.com'
);
jwtClient.authorize(function(err, token) {
  if(err) { 
    //console.log(err);
  }
  console.log('token',token);
  //listCalendars(jwtClient);
});

module.exports = {};

我在以下时间开始工作:

  1. 启用全域委派
  2. 将用户作为所有者添加到服务帐户
  3. 最重要的是:进入google管理员并授予api访问服务帐户的权限