【发布时间】:2016-06-07 07:43:53
【问题描述】:
我在一个网站上有一个表单,需要检查我的日历以查看可用的时间,然后在提交后它会发送一封电子邮件。
我在 API 控制台中创建了一个服务帐户,但我不知道如何授予它访问我帐户的权限。
这是我目前所做的,尝试列出我的 Gmail 帐户的标签作为测试。
var google = require( 'googleapis' );
var gmail = google.gmail('v1');
var key = require('../client_secret.json');
var authClient = new google.auth.JWT(
key.client_email,
null,
key.private_key,
['https://mail.google.com/'],
'****@gmail.com');
authClient.authorize(function (err, tokens) {
if (err) {
return console.log(err);
}
gmail.users.labels.list({
auth: authClient,
userId: '****@gmail.com'
}, function (err, resp) {
if (err) {
return console.log(err);
}
console.log(resp);
});
});
当我运行脚本时,我得到:
[Error: unauthorized_client]
编辑:
我还尝试了另一个使用 oauth 的身份验证流程,它会将您带到典型的权限屏幕,要求您允许访问“项目名称”到“您放置的任何范围”。然后我可以使用访问令牌发出请求,一切都很好......但这感觉不对,因为我不希望任何其他用户授权。我可以使用路由来授权“应用程序”1 次,然后禁用该页面,使其无法再次访问……感觉有点骇人听闻。
【问题讨论】:
标签: javascript node.js google-api google-api-nodejs-client