は、私がこの記事で説明したのと同じ問題が発生したらイベントを更新することができます。私は、イベントを作成したら、GoogleカレンダーAPIのみ
Google Calendar api v3 re-update issue
つまり、一度GoogleカレンダーのAPIを使用して、それを更新(v3)、私はもはやイベントを更新することができません。私がしようとすると、私は400 - 無効な値の応答を取得します。 (私はPHPで働いているFWIW)。
私が上で参照したポストで提供されたリードに続いて、私はetagsを使って問題を解決しようとしました(しかし、彼らの仕事は限られています)。基本的に、イベントの更新時に、APIはレスポンスにetagを返します。これをデータベースに保存します。その後の(N> 1)を更新するために、私は、データベースから現在のETagを引き、HTTPヘッダに含める:http://code.google.com/apis/gdata/docs/2.0/reference.html#ResourceVersioning
:
Content-Type: application/json
Authorization: OAuth [token]
If-Match: [etag]
これは、「更新エントリ」ここでヘッダの下に情報を以下Sidenote:上記のGoogle refでは、If-Matchヘッダーは
If-Match: "S0wCTlpIIip7ImA0X0QI"
のように表示されます。私は二重引用符でデータベースにetagsを保存しています、まさに最初の更新応答でそれらを受け取ります。 curl_setopt/HTTPHEADERを使用してヘッダに追加するときに引用符などをエスケープする必要がありますか?
このetag If-Matchの実装にもかかわらず、私はまだ同じ400 - 無効な値の応答を得ています。最初のアップデートがうまく動作するので、私のリクエストボディが有効であることを知っています。その後のアップデートを取り巻くいくつかの追加の問題があります。
ご迷惑をおかけして申し訳ございません。
あなたがマッチした場合-、あなたが更新しているエントリを取得することによって開始使用してエントリを更新するには」と言うの指示に従ってください。エントリに対する任意の変更を行い、変更されたエントリを含む新しいPUT要求を作成します。 –
フォローアップしていただきありがとうございます。私はちょうど私が既存のイベントを削除し、新しいものを作成する "更新"を実装してしまった。 –