2012-06-29 48 views
1

我正在研究將用戶Google文檔同步到本地數據庫的C++桌面應用程序。Google Doc重複項同步問題

應用程序通過發送獲取谷歌文檔和電子表格到當地的HTTP請求 (發送HTTP請求使用curl) 請求 https://docs.google.com/feeds/default/private/full

在這裏,我們保留在數據庫中的每一個谷歌文檔RESOURCE_ID和其他元信息的下一次同步。

一旦初始同步完成,從下一個同步開始發送用於獲取唯一的更新的資源

https://docs.google.com/feeds/default/private/full?updated-min=Value 以下HTTP請求在這裏更新-min是以前的XML更新分鐘值

這裏同時處理識別Google文檔的資源會根據以前保存的Google文檔「resource-id」值進行更新。

如果當前和以前的「resource_id」(從數據庫中檢索)是相同的,則考慮更新否則新的。由於根據Google Doc API,「resource_id」是Google文檔的唯一標識符。

實際上,響應應該只包含在「更新的最小」時間之後修改的新/更新資源。

這個邏輯工作正常,直到現在(近一年),現在突然在我們的數據庫中看到同一個Google文檔的重複條目。 (注意到它在Google Drive推出後開始顯示)。

此外,同一個Google文檔的所有重複條目都有不同的資源ID,因此我們將每個條目都視爲同一Google文檔的重複條目中的新條目結果。

「resource_id」是識別資源唯一性的正確屬性。

能否請您幫助我們解決這個問題

問候 對於SubBi雷迪

+0

那是Grive,還是其他什麼東西? –

回答

1

領域resource_id是正確的唯一識別存儲在谷歌文檔文件,但是,你應該使用變化喂同步數據,而不是依靠updated-min值:

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

此外,對最近發佈的2.0版本驅動API實現相同的功能,我建議您更新應用程序來使用它,而不是文檔列表API:

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

+0

謝謝,我會研究新的Google文檔API –