API为两个不同的频道

时间:2017-04-02 23:02:59

标签: google-calendar-api

我正在使用Google Calendar API并推送通知以添加频道并观看这些频道以查看新的事件。但是,在跟踪混合日历帐户和事件的奇怪行为时,我发现日历API响应的资源ID两个帐户都是一样的。

我不确定这是否是罪魁祸首,但这是docs中资源ID的定义

  

X-Goog-Resource-ID - 标识被监视的不透明值   资源。此API在API版本中保持稳定。

在我看来,这意味着它应该是独一无二的。资源ID和频道ID毕竟是停止频道的必要条件。

来自Google的两个不同帐户的相同资源ID的示例

帐户1

X-Goog-Resource-State: exists
X-Goog-Channel-Token: 56cab177e67348d9a17c7502a4bad513
X-Goog-Resource-ID: 8KXz6YKChAJDYMTUo0SoKqV8_7E
X-Goog-Channel-ID: ++7mlvx6pEIsTNeMpMwNLw==

帐户2

X-Goog-Resource-State: exists
X-Goog-Channel-Token: 4535832bc5cf47f7ae3403c404023bfd
X-Goog-Resource-ID: 8KXz6YKChAJDYMTUo0SoKqV8_7E
X-Goog-Channel-ID: mL+HzrG8/EYc7zRZdQ+6yw==

我的问题是,这是正常行为吗?

1 个答案:

答案 0 :(得分:1)

推送通知频道不提供各个事件的更新。它只会告诉您日历(事件集合)何时发生变化。

要查找事件更改,您需要查找syncing。 通过同步,您可以发送从上次同步到List API端点时获得的令牌。它不会列出所有事件,而是仅列出自上次自请求以来发生更改的事件,由同步令牌表示。

您可以在想要更改事件时随时发布到List API,但您所描述的推送通知有助于告诉您何时会有有意义的更改来调用同步。