我已设置渠道来检测用户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匹配。
有人可以澄清这里发生了什么吗?我错过了什么吗?
答案 0 :(得分:0)
如果您正在使用Changes: watch
观看用户云端硬盘的所有更改,请注意请求正文中返回的id
是UUID或标识此频道的类似唯一字符串。
您可以使用Changes: list
检索更改的ID以及与更改相关联的文件的ID。使用以下格式发送HTTP请求:
GET https://www.googleapis.com/drive/v2/changes
可提供的可选ID参数如下(changeId
和fileId
不包括在内):
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。