如何创建手表请求



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

然而,根据之前的线程,你不能用API资源管理器做这个,必须直接从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"  ] })

任何帮助都非常感谢!

是的,你需要使用Gmail API来设置监视器,见下面的例子。你需要设置"oauth2Client"之前自己这样做,我假设你有它。如果你在你的网站上使用登录与谷歌功能,你已经拥有它。

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;
});

不幸的是gcloud-node不支持它。你可以在API浏览器中使用gmail API:https://developers.google.com/apis-explorer/p/gmail/v1/

如果这些都失败了,你可以简单地使用request模块进行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));
});

相关内容

  • 没有找到相关文章

最新更新