我已经创建了一个主题,订阅了它,使用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));
});