我有客户端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错误。
答案 0 :(得分:0)
在检查我的请求标头后,我注意到client_id
不匹配。事实证明,在我的html模板的另一部分中使用的https://apis.google.com/js/platform.js
调用中仍然有旧的客户端ID来检查谷歌登录!