【发布时间】:2017-07-01 20:30:33
【问题描述】:
我有客户端 JavaScript 代码,需要能够加载 gmail API 并代表用户发送电子邮件。我已经在开发者控制台上创建了我的 oAuth 凭据,并启用了 gmail API。我也在控制台中将带有我正在使用的端口号的 localhost 添加到授权的 javascript 源中。当我运行 gapi.client.init 时,gapi 发送到 google URL 的 GET 请求返回 401 错误。为什么我会收到此错误?这是在加载 google js API 并调用 handleClientLoad 后尝试加载 gmail.send 范围的代码。 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 错误。
【问题讨论】:
标签: javascript oauth google-api-js-client