我正在尝试让谷歌日历推送通知为资源(又名房间)工作。它们非常适用于用户日历,但当我调用/监视资源时,它会成功创建。我在服务器上收到了最初的"同步"呼叫,但之后我再也没有收到谷歌的回复。
我创建手表的方法是对管理员进行身份验证,并使用该Token将手表添加到管理员作为日历添加到其列表中的资源上,因此它会显示在calendarList/list调用中。我还打开了该日历管理员帐户上的所有通知。
你知道我可能做错了什么吗?
确保您注册了接收URL的域。如果您计划使用https://domain.com/notifications
作为接收URL,则需要注册https://domain.com.
每个可观看的Google Calendar API资源都有一个关联的watch
方法,其URI如下:
https://www.googleapis.com/apiName/apiVersion/resourcePath/watch
您需要向资源的监视方法发送POST请求,以便为有关特定资源更改的消息设置通知通道。
POST https://www.googleapis.com/calendar/v3/calendars/my_calendar@gmail.com/events/watch
Authorization: Bearer auth_token_for_current_user
Content-Type: application/json
{
"id": "01234567-89ab-cdef-0123456789ab", // Your channel ID.
"type": "web_hook",
"address": "https://domain.com/notifications", // Your receiving URL.
...
"token": "target=myApp-myCalendarChannelDest", // (Optional) Your channel token.
"expiration": 1426325213000 // (Optional) Your requested channel expiration time.
}
}
每个通知通道都与特定用户和特定资源(或资源集)相关联。除非当前用户拥有或拥有访问此资源的权限,否则watch
请求将不会成功。
请查看此文档。