我正在尝试使用JS客户端库订阅日历事件通知,如下所示:
gapi.client.load('calendar', 'v3', function () {
var request = gapi.client.calendar.events.watch({
'calendarId': cl.gCalendarID,
'id': unid,
'type': "web_hook",
'address': {my url here}
});
request.execute(function (resp) {
console.log(resp);
});
});
但是我只是通过“Entity.Resource
”
在回复的数据对象中,我得到Domain:global, Message: Entity.Resource, reason: Required"
我已经通过oauth2进行了身份验证,并且我已经授予了访问我的Google帐户的权限,并且我可以成功检索日历列表,并且我正在从他们的日历中检索事件,但这种订阅手表的方法不起作用?请帮助我在Google上找不到任何关于此的内容。
答案 0 :(得分:5)
Instead of this:
var request = gapi.client.calendar.events.watch({
'calendarId': cl.gCalendarID,
'id': unid,
'type': "web_hook",
'address': {my url here}
});
您使用以下语法:
calendar.events.watch({
auth: auth,
resource: {
id: "12345",
type: 'web_hook',
address: {mu url here}
},
calendarId: 'primary'
}, function(err, response) {
if (err) {
logger.MessageQueueLog.log("info","index.js:- watchnotification(),Error in Watch Notification: " + err);
} else {
logger.MessageQueueLog.log("info","index.js:- watchnotification(), Notification : " + JSON.stringify(response));
}
});
希望它能奏效。
答案 1 :(得分:0)
您需要在向Calendar API发出的请求中传递令牌值,以区分您的请求,如下所示
{
"id": string,
"token": string,
"type": string,
"address": string,
"params": {
"ttl": string
}
}
如需进一步参考,请参阅