获取资源/房间的Google API推送通知



我正在尝试让谷歌日历推送通知为资源(又名房间)工作。它们非常适用于用户日历,但当我调用/监视资源时,它会成功创建。我在服务器上收到了最初的"同步"呼叫,但之后我再也没有收到谷歌的回复。

我创建手表的方法是对管理员进行身份验证,并使用该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请求将不会成功。

请查看此文档。

最新更新