首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何将Google API作为特定用户的服务器端使用?Node.js

如何将Google API作为特定用户的服务器端使用?Node.js
EN

Stack Overflow用户
提问于 2016-06-07 00:33:08
回答 1查看 102关注 0票数 0

我在一个网站上有一个表格,它需要检查我的日历,看看什么时间可用,然后当它提交时,它会发送一封电子邮件。

我在API控制台中创建了一个服务帐户,但我不知道如何授予它访问我的帐户的权限。

这是我到目前为止所做的,尝试列出我的Gmail帐户的标签作为测试。

代码语言:javascript
代码运行次数:0
运行
复制
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);
  });
});

当我运行这个脚本时,我得到了:

代码语言:javascript
代码运行次数:0
运行
复制
[Error: unauthorized_client]

编辑:

我还尝试了使用oauth的另一个身份验证流,它会将您带到典型的权限屏幕,要求您允许“项目名称”到“您放置的任何范围”的访问。然后,我可以使用访问令牌发出请求,一切都很好……但这感觉并不正确,因为我不想让任何其他用户授权。我可以使用一个路由来授权"app“1次,然后禁用那个页面,这样它就不能再被访问了……感觉有点怪怪的。

EN

回答 1

Stack Overflow用户

发布于 2016-06-07 07:43:53

我已经部分地解决了我的问题;至少,我已经让我问题中的例子起作用了。

在开发人员控制台中,我必须编辑我的服务帐户,并选中一个复选框以启用“全域委派”。

您转到您的服务帐户,单击您的服务帐户右侧的小3点菜单图标,单击编辑,在弹出的对话框中有一个您需要选中的复选框。

我之前看到过一些关于全域委派的东西,但在那个例子中,他们说要转到你的Google Apps帐户,而我没有,所以我认为它不适合我,但在开发人员控制台中修修补补之后,我发现上面的复选框和Gmail示例可以工作,以及Gmail API的其他部分,包括从我的收件箱读取消息。

但是,我尝试向Calendar API发出请求,但得到一个错误,但我认为这需要一个不同的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37662567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档