1

我正在开发将用户 Google 文档同步到本地数据库的 c++ 桌面应用程序。

应用程序通过发送 HTTP 请求(使用 curl 发送 HTTP 请求)将 Google 文档和电子表格检索到本地请求 https://docs.google.com/feeds/default/private/full

在这里,我们将每个 Google 文档 resource_id 和其他元信息保留在数据库中以供下次同步使用。

完成初始同步后,从下一次同步开始发送以下 HTTP 请求以获取唯一更新的资源

https://docs.google.com/feeds/default/private/full?updated-min=Value 这里 updated-min 是以前的 XML updated-min 值

此处在处理标识 Google 文档的资源时,会根据之前保存的 Google 文档“resource-id”值更新或不更新。

如果当前和以前的“resource_id”(从数据库中检索)相同,则认为更新为新的。因为根据 Google Doc API,“resource_id”是 Google 文档的唯一标识符。

实际上响应应该只包含在“updated-min”时间之后修改的新/更新资源。

这个逻辑直到现在(差不多一年)都运行良好,现在突然在我们的数据库中看到同一个 Google 文档的重复条目。(注意到它在 Google Drive 推出后开始出现)。

此外,同一 Google 文档的所有重复条目都有不同的资源 ID,因此我们将每个条目都视为新条目导致相同 Google 文档的重复条目。

“resource_id”是识别资源唯一性的正确属性。

你能帮我们解决这个问题吗

问候 Subbi Reddy

4

1 回答 1

1

该字段resource_id是唯一标识存储在 Google 文档中的文件的正确字段,但是,您应该使用更改提要来同步数据,而不是依赖于updated-min值:

https://developers.google.com/google-apps/documents-list/#detecting_changes_to_resources

此外,最近发布的 Drive API 第 2 版实现了相同的功能,我建议更新您的应用以使用它而不是 Documents List API:

https://developers.google.com/drive/manage-changes

于 2012-06-29T23:36:29.247 回答