我正在使用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\'' } ] }
任何人都可以帮助我,为什么我收到此错误? 感谢。
答案 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"
}