Google Calendar API - 只能更新一次事件

G. *_*ore 4 curl http google-calendar-api google-api http-headers

我遇到了与本文所述相同的问题:

Google Calendar api v3重新更新问题

也就是说,一旦我使用Google Calendar API(v3)创建活动并更新一次,我就无法再更新活动.当我尝试时,我得到一个400 - 无效的值响应.(FWIW我在PHP工作).

在我上面提到的帖子中提供了一个主导,我尝试使用etags解决问题(尽管我承认他们的工作方式是有限的).基本上,在事件更新时,API会在其响应中返回一个etag,我现在将其保存在我的数据库中.然后,对于后续(n> 1)更新,我从数据库中提取当前etag并将其包含在http标头中:

Content-Type:  application/json
Authorization:  OAuth [token]
If-Match: [etag]
Run Code Online (Sandbox Code Playgroud)

以下是"更新条目"标题下的信息:http://code.google.com/apis/gdata/docs/2.0/reference.html#ResourceVersioning

旁注:在上面的google ref中,If-Match标题显示为

If-Match: "S0wCTlpIIip7ImA0X0QI"
Run Code Online (Sandbox Code Playgroud)

在etag周围加上双引号.我用双引号将etags保存在数据库中,就像我在第一次更新响应中收到它们一样.使用curl_setopt/HTTPHEADER添加到标题时,是否需要转义引号或其他内容?

尽管实现了这个etag If-Match的东西,我仍然得到相同的400 - 无效的值响应.我知道我的请求主体是有效的,因为第一次更新工作正常.围绕后续更新还有一些其他问题.

任何帮助非常感谢.

小智 14

更新事件时,请确保增加序列号字段.