停止谷歌推送通知,回复“找不到项目的渠道”

时间:2016-01-05 18:08:55

标签: google-calendar-api

我正在使用Google日历推送通知。一切运作良好,我注册我的频道没有问题。对日历的更改会产生预期的通知。

我想停止推送通知。我打电话给Google停止推送通知API。 “https://www.googleapis.com/calendar/v3/channels/stop” 但我收到错误代码:404 and message: "Channel not found for project"

请求:

googleCalendar.channels.stop({
       auth: oauth2Client,
        resource: {
            id: 'cfabcfaa-a6eb-4432-8068-6417ee2ce8a6', //channelID
            resourceId: '3kGwQdmzSMCZ41MAFdwEzt0ugNQ'   //resourceID
        } 
      }, function(err, results) {
         if(err){
         return;
         }
         console.log(results) })

响应:

{ [Error: Channel 'cfabcfaa-a6eb-4432-8068-6417ee2ce8a6' not found for project '87165627894']
  code: 404,
  errors:
   [ { domain: 'global',
       reason: 'notFound',
       message: 'Channel \'cfabcfaa-a6eb-4432-8068-6417ee2ce8a6\' not found for project \'87165627894\'' } ] }

任何人都可以帮助我,为什么我收到此错误? 感谢。

1 个答案:

答案 0 :(得分:1)

我无法确认您是否正在使用库,但似乎您正在调用calendarList watch方法而不是channel stop方法(用于停止推送通知)。

根据Calendar API文档中的Push Notification页面,必填字段确实是channelID和resourceID(正如您指定的那样;还需要用户的身份验证令牌)

https://www.googleapis.com/calendar/v3/channels/stop

POST https://www.googleapis.com/calendar/v3/channels/stop
Authorization: Bearer {auth_token_for_current_user}
Content-Type: application/json

{
  "id": "4ba78bf0-6a47-11e2-bcfd-0800200c9a66",
  "resourceId": "ret08u3rv24htgh289g"
}