Google云端硬盘更改API - 更改ID和文件ID无效

时间:2017-07-26 12:29:51

标签: google-drive-api

我已设置渠道来检测用户Google云端硬盘的变化。这部分工作正常,每次发生更改时我都会向我的服务器发送一个POST。例如:

{ kind: 'drive#change',
  id: '238',
  selfLink: 'https://www.googleapis.com/drive/v2/changes/238' }

然而,似乎我在该POST中获得的数据无效。 POST中的更改ID似乎总是与实际ID不同。对于上面的示例,如果我尝试GET id 238,则响应“未找到”。但是,如果我使用237,它就可以工作。

另一个令人困惑的事情是文件ID。

How to get ID of changed file on Google Drive - 此答案指出文件ID位于标头X-Goog-Resource-ID中。但是,与上面相同,此ID永远不会与实际文件ID匹配。

有人可以澄清这里发生了什么吗?我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

如果您正在使用Changes: watch观看用户云端硬盘的所有更改,请注意请求正文中返回的id是UUID或标识此频道的类似唯一字符串。

您可以使用Changes: list检索更改的ID以及与更改相关联的文件的ID。使用以下格式发送HTTP请求:

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

可提供的可选ID参数如下(changeIdfileId不包括在内):

  • startChangeId更改ID以开始列出更改。
  • teamDriveId Team Drive将从中返回更改。

如果成功,此方法将返回一个响应正文,其中包含更改的id和与更改相关联的文件的fileId。这是样本结构:

{
  "kind": "drive#changeList",
  "etag": etag,
  "selfLink": string,
  "items": [
    {
      "kind": "drive#change",
      "id": long,
      "type": string,
      "fileId": string,
      "file": files Resource
    }
  ]
}

有关详细信息,请参阅Detect Changes