javascript gapi oauth2导致401错误

时间:2017-02-13 18:36:08

标签: javascript oauth gapi

我有客户端javascript代码,需要能够加载gmail API并代表用户发送电子邮件。我在开发者控制台上创建了oAuth凭据,并启用了gmail API。我已将localhost与我正在使用的端口号添加到控制台中的授权javascript源。当我运行gapi.client.init时,GET发送给Google网址的gapi请求会返回401错误。为什么我收到此错误?以下是加载google js API并调用gmail.send后尝试加载handleClientLoad范围的代码。控制台中显示401错误;它不会被异步错误处理程序捕获:

function checkAuth() {
    gapi.client.init({
        clientId: '<MY CLIENT ID FROM THE DEV CONSOLE>',
        scope: 'https://www.googleapis.com/auth/gmail.send'
    }).then(function() {
        gapi.client.load('gmail', 'v1', function() {});
    }, function(err) {
        alert("There was an error" + err);
    });
}

function handleClientLoad() {
    gapi.load('client:auth2', checkAuth);
}

我让一切工作正常,直到我不小心删除了我使用开发者控制台的项目,并且不得不创建一个新项目。但除了启用gmail API,设置我的原始URL以及更新我的客户端ID以匹配新项目之外,我不知道还有什么不同。以前,我使用的是API密钥,但据我所知,这是多余的,甚至创建/提供新的API密钥我得到了相同的401错误。

1 个答案:

答案 0 :(得分:0)

在检查我的请求标头后,我注意到client_id不匹配。事实证明,在我的html模板的另一部分中使用的https://apis.google.com/js/platform.js调用中仍然有旧的客户端ID来检查谷歌登录!