javascript - 使用 Gmail API NodeJS 授权错误列出邮件

标签 javascript node.js google-oauth gmail-api google-api-nodejs-client

我编写了一个简单的代码来列出来 self 的 Gmail 帐户的邮件。但是,我收到 401 错误。我的代码如下

const gmailKey = google.gmail({version: 'v1', oauth2Client});

var initialRequest = gmailKey.users.messages.list({
    'userId': 'me'
});
getPageOfMessages(initialRequest, []);

var getPageOfMessages = function(request, result) {
    request.execute(function(resp) {
        result = result.concat(resp.messages);
        var nextPageToken = resp.nextPageToken;
            if (nextPageToken) {
                request = gmail.users.messages.list({
                    'userId': 'me',
                    'pageToken': nextPageToken
                });
                getPageOfMessages(request, result);
            }else{
                callback(result);
            }
    });
};

错误是

code: 401,
errors:
[{ domain: 'global',
   reason: 'required',
   message: 'Login Required',
   locationType: 'header',
   location: 'Authorization' }]

oauth2Client如下

const oauth2Client = new google.auth.OAuth2(
    CLIENT_ID,
    CLIENT_SECRET,
    REDIRECT_URL
);

我使用相同的oauth2Client来获取访问 token ,并且还在.credentials小节中验证了相同的内容。我还确保初始化 gmailKeyoauth2Client 包含适当的凭据。

如何解决 Gmail 授权问题?

提前致谢

最佳答案

如果您仍然遇到此问题,则说明未设置授权的问题出在您粘贴的第一行代码中:

const gmailKey = google.gmail({version: 'v1', oauth2Client});

设置oauth2Client的正确方法是:

const gmailKey = google.gmail({version: 'v1', auth: oauth2Client });

google.options({ auth: oauth2Client });//全局设置 const gmailKey = google.gmail('v1');

关于javascript - 使用 Gmail API NodeJS 授权错误列出邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52642794/

相关文章:

javascript - 验证触摸事件不适用于 Angular 5.2

javascript - Javascript 排序中到底发生了什么

node.js - 在 Cloud Functions for Firebase 中运行 Firestore 批处理

node.js - 安装polymer-cli 时出现问题

ruby-on-rails - 具有半私密性的 OAuth 授权码的安全性

javascript - Ember 组件 sendAction() 不工作

javascript - 延迟加载图像如何

Node.js、套接字、io 和 HTTPS

php - token 中的段数错误 (OAuth Google Api)

java - 用于应用程序引擎 2 应用程序引擎身份验证的应用程序身份服务