我试图让Google Calendar推送通知为资源(也称为会议室)工作。它们适用于用户日历,但是当我在资源上调用/监视时,它会成功创建。我得到了最初的" Sync"在服务器上打电话,但我再也没有收到过Google的回复。
我创建手表的方法是对管理员进行身份验证,并使用该令牌将管理员已添加为日历的资源添加到其列表中,以便将其显示在calendarList /中列表电话。我还打开了该日历管理员帐户的所有通知。
对于我可能做错了什么的任何想法?
答案 0 :(得分:1)
确保您注册接收网址的域名。如果您打算使用https://domain.com/notifications
作为接收网址,则需要注册https://domain.com.
每个可观看的Google Calendar API资源在以下格式的URI中都有关联的watch
方法:
https://www.googleapis.com/apiName/apiVersion/resourcePath/watch
您需要向资源的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
请求将不会成功。