我遇到在这篇文章中描述了同样的问题只能更新事件:谷歌日历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