2016-12-27 3 views
1

Ich möchte eine benutzerdefinierte Erinnerung an Google Kalender mit golang hinzuzufügen:In Erinnerung auf Google Kalender mit golang

event := &calendar.Event{ 
    Summary:  "Test GG calendar", 
    Location: "31 AAA", 
    Description: "Test google calendar", 
    Start: &calendar.EventDateTime{ 
     DateTime: "2016-12-27T17:30:00+07:00", 
     TimeZone: "Asia/Ho_Chi_Minh", 
    }, 
    End: &calendar.EventDateTime{ 
     DateTime: "2016-12-27T17:40:00+07:00", 
     TimeZone: "Asia/Ho_Chi_Minh", 
    }, 
    Reminders: &calendar.EventReminders{ 
     Overrides: []*calendar.EventReminder{ 
      {Method: "email", Minutes: 30}, 
      {Method: "popup", Minutes: 10}, 
     }, 
     UseDefault: false, 
    }, 
} 

Wenn ich diesen Code ausführen, Google nicht Veranstaltung hinzufügen könnte. Ich habe diesen Fehler erhalten: Das Ereignis konnte nicht erstellt werden. googleapi: Fehler 400:. Kann nicht beide Standarderinnerungen und überschreibt die gleichzeitig angeben, cannotUseDefaultRemindersAndSpecifyOverride

Dank

+1

I-Lösung gefunden. Wir müssen 'ForceSendFields: [] string {" UseDefault "},' nach UseDefault: false hinzufügen, weil sie glauben, false value ist leer und sie haben es nicht an den Server gesendet: https://godoc.org/google .golang.org/api/calendar/v3 # EventReminders – hungpk

Antwort

1

Basierend auf meiner Lektüre von google-apps/calendar/concepts/reminders, so scheint es, dass Sie nicht die UseDefault: false, zur gleichen Zeit wie Einstellung festlegen sollte die Overrides. Setzen Sie nicht den UseDefault: false, Teil, und es wird standardmäßig auf false gesetzt, da es nur erforderlich ist, um festzulegen, dass bereits vorhandene Überschreibungen entfernt werden sollen.

So ist der erwartete Code ist:

event := &calendar.Event{ 
    Summary:  "Test GG calendar", 
    Location: "31 AAA", 
    Description: "Test google calendar", 
    Start: &calendar.EventDateTime{ 
     DateTime: "2016-12-27T17:30:00+07:00", 
     TimeZone: "Asia/Ho_Chi_Minh", 
    }, 
    End: &calendar.EventDateTime{ 
     DateTime: "2016-12-27T17:40:00+07:00", 
     TimeZone: "Asia/Ho_Chi_Minh", 
    }, 
    Reminders: &calendar.EventReminders{ 
     Overrides: []*calendar.EventReminder{ 
      {Method: "email", Minutes: 30}, 
      {Method: "popup", Minutes: 10}, 
     }, 
    }, 
} 
+0

Danke für Ihre Antwort. – hungpk

+1

In Go ist der Standardwert von bool false, so dass der Wert von UserDefault immer falsch ist, wenn wir ihn nicht angegeben haben. In diesem Beispielcode müssen wir "false" für UserDefault festlegen: https://developers.google.com/google-apps/calendar/create-events. Ich weiß nicht, warum Google Reminder Erinnerung Beispielcode in Go Teil. Sie können es in Java oder PHP-Teil sehen. – hungpk

Verwandte Themen