我遇到在這篇文章中描述了同樣的問題只能更新事件:谷歌日曆API一旦
Google Calendar api v3 re-update issue
也就是說,一旦創建活動,並使用谷歌日曆API更新一次它(v3),我不能再更新活動。當我嘗試時,我得到一個400 - 無效的價值迴應。 (FWIW我正在使用PHP)。
繼我在上面引用的帖子中提供了一個潛在客戶之後,我試圖用etags解決這個問題(儘管我承認我對它們的工作方式的掌握有限)。基本上,在事件更新時,API會在其響應中返回一個etag,我現在將其保存在我的數據庫中。那麼對於後續的(N> 1)更新,我拉電流ETAG從數據庫中,並將其包括在HTTP標頭:
Content-Type: application/json
Authorization: OAuth [token]
If-Match: [etag]
在此之前,根據「更新條目」頭位置信息:http://code.google.com/apis/gdata/docs/2.0/reference.html#ResourceVersioning
旁註:在上面的google參考文獻中,If-Match標頭顯示爲
If-Match: "S0wCTlpIIip7ImA0X0QI"
帶有雙引號的etag。我用雙引號將etags保存在數據庫中,正如我在第一次更新響應中收到它們一樣。使用curl_setopt/HTTPHEADER添加到標題時,是否需要轉義引號或任何內容?
儘管執行此etag If-Match事件,我仍然得到相同的400 - 無效的值響應。我知道我的請求體是有效的,因爲第一次更新正常。圍繞後續更新還有一些額外的問題。
任何幫助非常感謝。
你下面哪個說「進行更新要使用的if-match,通過獲取您要更新條目開始的條目說明進行對條目進行任何所需的更改,然後創建一個包含修改條目的新PUT請求。「 – 2012-03-16 02:22:31
感謝您的跟進。我剛剛結束了實施「更新」,刪除了現有活動並創建了一個新活動。 – 2012-03-19 15:43:12