2

我有一个关于推送通知 API 的问题。

我在我的服务下为推送通知创建了 web_hook URL,因此我可以使用 selfLink 获取文档更改状态的 URL。

但是当我使用 selfLink 获取 URL 时,有时会收到 404 代码。

请让我知道为什么 Drive API 有时会响应 404 代码。

设想:

来自谷歌推送通知服务器的请求正文。

{
  "kind": "drive#changes",
  "id": "12345",
  "selfLink": "https://www.googleapis.com/drive/v2/changes/12345"
}

在我的服务器下获取 URL。

GET https://www.googleapis.com/drive/v2/changes/12345 

响应正文

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "notFound",
    "message": "Change not found: 12345"
   }
  ],
  "code": 404,
  "message": "Change not found: 12345"
 }
} 
4

1 回答 1

4

对文件所做的更改会因文件的后续更改而失效。

假设您有更改 #100,并获得它的推送通知。在将更改发送给您期间,假设对文件进行了另一次编辑,更改标记为 101。现在更改标记 101 将使更改标记 100 无效。

处理此问题的一种方法可能是获取更改 >= 您获得的更改编号,并按 fileId 过滤。

还要注意打开文件,即使您不进行任何编辑,也会更新它的 lastViewed 时间,从而生成新的更改,从而使旧的更改戳无效。

于 2013-08-20T22:44:44.087 回答