3

我创建了一个主题,订阅它,使用 Google 的 API Explorer 设置主题的发布权限,现在需要创建一个监视请求,如下所述:https ://developers.google.com/gmail/api/guides/推

但是,根据之前的线程,您不能使用 API Explorer 执行此操作,而必须直接从 gcloud 执行此操作。我知道电话的一般形式是这样的:

POST "https://www.googleapis.com/gmail/v1/users/me/watch"
Content-type: application/json

{
  topicName: "projects/myproject/topics/mytopic",
  labelIds: ["INBOX"],
}

但是,我不确定如何在 node.js 中实现这一点——代码会是什么样子?我尝试了以下方法,但出现function undefined错误:

gcloud.watch({  "topicName":
"projects/pipedrivesekoul/topics/my-new-topic",  "labelIds": [  
"INBOX"  ] })

非常感谢任何帮助!

4

3 回答 3

4

是的,您需要使用 Gmail API 来设置观察者,请参见下面的示例。您需要在自己执行此操作之前设置“oauth2Client”,我假设您拥有它。如果您在您的网站上使用带有 google 功能的登录,那么您已经拥有它。

var options = {
    userId: 'me',
    auth: oauth2Client,
    resource: {
        labelIds: ['INBOX'],
        topicName: 'projects/id/topics/messageCenter'
    }
};

gmail.users.watch(options, function (err, res) {
    if (err) {
        // doSomething here;
        return;
    }
    // doSomething here;
});
于 2016-03-09T15:19:15.300 回答
2

如果一切都失败了,您可以简单地使用请求模块进行 POST 请求,如下所示:

var request = require('request');

request({
  url: "https://www.googleapis.com/gmail/v1/users/me/watch",
  method: "POST",
  headers: {
    Authorization: 'Bearer {YOUR_API_KEY}'
  },
  data: {
    topicName: "projects/pipedrivesekoul/topics/my-new-topic",
    labelIds: ["INBOX"]
  },
  json: true
}, function(response) {
  console.log(JSON.stringify(response, null, 4));
});
于 2015-07-31T07:35:16.280 回答
2

不幸的是,gcloud-node 不支持它。您可以在 API Explorer 中使用 gmail API: https ://developers.google.com/apis-explorer/#p/gmail/v1/

于 2015-07-30T23:08:23.737 回答