2017-03-16 8 views
0

JavaScriptを使用してGoogleカレンダーの予定を更新しようとしていますが、指定した特定の変数を簡単に更新できないようです。Google Calendar APIのイベントを更新するJavaScript

  var event = {}; 

      // Example showing a change in the location 
      event = {"location": "New Address"}; 

      var request = gapi.client.calendar.events.update({ 
       'calendarId': 'primary', 
       'eventId': booking.eventCalendarId, // Event ID stored in database 
       'resource': event 
      }); 

      request.execute(function (event) { 
       console.log(event); 
      }); 

かかわらず、私は従うことをしようとしてきたAPI Referenceの、私はイベント自体を取得し、しようとし、その参照を渡す試してみた:以下のコードは、私が他の同様の組み合わせと一緒に、これまでに試したものです特定の変数を更新します。しかし、上記の最も近い動作サンプルコードを使用して、私は、コンソールに、最小限のパラメータとして開始日と終了日がないことに気づいたことに気付きました。明らかにこれを 'event'オブジェクトに追加することはできますが、指定したフィールドのみを更新したいので効果的ではありません。唯一の選択肢は、単純にイベントを削除して新しいイベントを作成することです。これは簡単な方法でなければなりません。まったく完全に逃したことがあります。

答えて

2

誰かが同じ問題を経験した場合、この問題を自分自身で解決するように管理しました。正しいフォーマットは、 'PATCH'対 'UPDATE'を使用することで、 'UPDATE'に必要なフィールドの最小範囲を設定するのではなく、特定のフィールドを更新することができます。

これは、最初にすべてのイベントを取得することにより、わずかな初期編集を含め、一例として、問題を修正しました私が見つけた正しいコード:このコードが動作する

  var event = gapi.client.calendar.events.get({"calendarId": 'primary', "eventId": booking.eventCalendarId}); 

      // Example showing a change in the location 
      event.location = "New Address"; 

      var request = gapi.client.calendar.events.patch({ 
       'calendarId': 'primary', 
       'eventId': booking.eventCalendarId, 
       'resource': event 
      }); 

      request.execute(function (event) { 
       console.log(event); 
      }); 
+0

を、しかし、約束はevents.getで、パッチ要求を実行する前に.then()を使用して結果を取得する必要があります。 –

関連する問題