【问题标题】:gcloud pubsub - how to create watch requestgcloud pubsub - 如何创建观看请求
【发布时间】:2015-10-22 09:03:56
【问题描述】:

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

但是,根据之前的线程,您无法使用 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"  ] })

非常感谢任何帮助!

【问题讨论】:

    标签: node.js heroku gmail-api google-cloud-pubsub gcloud-node


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      如果一切都失败了,你可以简单地做一个 POST 请求,例如request 模块,如下所示:

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

      【讨论】:

        【解决方案3】:

        是的,您需要使用 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;
        });
        

        【讨论】:

        • 谢谢,我查看了resource 键的所有文档,但找不到labelIdstopicName 应该在resource 键中的最小线索!跨度>
        • 任何时候,很高兴这有帮助。
        • @Sekoul 你能给我你的推荐尝试吗?我坚持这个。我也在这里提出了一个问题stackoverflow.com/questions/40057253/…
        猜你喜欢
        • 2022-06-11
        • 1970-01-01
        • 1970-01-01
        • 2017-05-17
        • 2019-09-05
        • 2017-12-17
        • 2018-08-10
        • 2010-12-14
        • 1970-01-01
        相关资源
        最近更新 更多