2015-07-30 7 views
3

Я создал тему, подписался на него, установить издательские права на тему с помощью Google, API Explorer, а теперь нужно создать запрос на часы, как описано здесь: https://developers.google.com/gmail/api/guides/pushgcloud PubSub - как создать запрос часы

Однако, согласно предыдущим потокам, вы не можете сделать это с помощью 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" ] }) 

Любая помощь очень ценится!

ответ

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

Yep вам нужно использовать API Gmail для настройки сторожа, смотрите пример ниже. Прежде чем делать это самостоятельно, вам нужно настроить «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; 
}); 
+1

Благодарим вас, я искал всю документацию в ключе 'resource' и не смог найти наименьший ключ, который' labelIds' и 'topicName' должен быть в 'resource' key! –

+0

В любое время, рад, что это помогло. – Rantiev

+0

@ Sekoul вы можете дать мне свою попытку обратиться. Я застрял в этом. также я поднял вопрос здесь http://stackoverflow.com/questions/40057253/watch-requset-in-gmail-api-doesnt-work –