Node.js Gmail API支持JWT吗?

Node.js Gmail API支持JWT吗?,node.js,oauth-2.0,google-oauth,jwt,gmail-api,Node.js,Oauth 2.0,Google Oauth,Jwt,Gmail Api,我想使用NodeJS访问gmailapi 我使用的是服务器到服务器的方法(请参阅),但是当我执行下面的代码时,我从GoogleAPI得到了一个backEndError,代码500 有什么想法吗 var authClient = new google.auth.JWT( 'email', 'key.pem', // Contents of private_key.pem if you want to load the pem file yourself // (do

我想使用NodeJS访问gmailapi

我使用的是服务器到服务器的方法(请参阅),但是当我执行下面的代码时,我从GoogleAPI得到了一个backEndError,代码500

有什么想法吗

var authClient = new google.auth.JWT(
    'email',
    'key.pem',
    // Contents of private_key.pem if you want to load the pem file yourself
    // (do not use the path parameter above if using this param)
    'key',
    // Scopes can be specified either as an array or as a single, space-delimited string
    ['https://www.googleapis.com/auth/gmail.readonly']
);

authClient.authorize(function(err, tokens) {
    if (err) 
        console.log(err);

    gmail.users.messages.list({ userId: 'me', auth: authClient }, function(err, resp) {
    // handle err and response
    if (err) {
        console.log(err);
});

是的,我也有同样的问题。如果我使用范围“”,我得到

如果我使用范围“”(注意结尾的/),我得到


这似乎与使用JWT和服务帐户有关。

+1是一个好问题。我不知道,我将进行第二次演练,并检查所有步骤是否如预期的那样(这部分在代码中不可见)。如果“我”帐户使用两步身份验证,则可能会失败。在这种情况下,软件代理需要使用仅由“我”为他们创建的特殊令牌()。我也尝试使用JWT,但请求的客户端未经授权,访问被拒绝。我可以问一下您给新google.auth.JWT的参数吗?我使用
key.client\u email
作为第一个参数,
null
作为第二个参数,
key.private\u key
作为第三个参数,然后是作用域。我在哪里告诉它我应该从哪个用户那里取回邮件?我需要从域内的各种帐户获取电子邮件。
403
{
  "error" : "access_denied",
  "error_description" : "Requested client not authorized."
}
403
 'Forbidden'