2017-03-16 10 views
0

Ich versuche, ein Ereignis in Google Kalender mithilfe von JavaScript zu aktualisieren, und es scheint nicht möglich zu sein, eine einfache Aktualisierung bestimmter von mir spezifizierter Variablen zu erreichen. Der folgende Code ist, was ich zusammen mit anderen ähnlichen Kombinationen bisher versucht habe:Update-Ereignis in Google Kalender-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); 
      }); 

Unabhängig von den API Reference ich versucht habe zu folgen, ich habe versucht, das Ereignis selbst immer und vorbei, dass der Bezug zu versuchen, Aktualisierung bestimmter Variablen Allerdings habe ich bei der Verwendung des nächstliegenden Beispielcodes oben bemerkt, dass die Konsole darauf hinweist, dass das Anfangs- und das Enddatum als Mindestparameter fehlen. Ich kann das natürlich dem "event" -Objekt hinzufügen, aber das ist nicht effektiv, da ich nur die von mir spezifizierten Felder aktualisieren möchte. Die einzige andere Möglichkeit besteht darin, einfach das Ereignis zu löschen und ein neues zu erstellen - es muss einen einfacheren Weg geben, oder es gibt etwas, das ich komplett verpasst habe.

Antwort

2

Managed, um dieses Problem selbst zu beheben, wenn jemand das gleiche Problem auftritt. Das korrekte Format ist die Verwendung von 'PATCH' im Vergleich zu 'UPDATE', wodurch bestimmte Felder aktualisiert werden können, anstatt die für 'UPDATE' erforderliche Mindestanzahl von Feldern einzurichten.

Dies ist der richtige Code gefunden, der das Problem als ein Beispiel festgelegt, einschließlich einer leichten anfänglichen bearbeiten, indem das Ereignis immer zuerst:

  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

Dieser Code funktioniert, aber events.get ist ein Versprechen, und Sie sollten .then() verwenden, um die Ergebnisse zu erhalten, bevor Sie die Patch-Anfrage ausführen. –