使用golang在谷歌日历上添加提醒

使用golang在谷歌日历上添加提醒,go,google-calendar-api,Go,Google Calendar Api,我想使用golang向Google日历添加自定义提醒: 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",

我想使用golang向Google日历添加自定义提醒:

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,
    },
}
当我运行此代码时,google无法添加事件。我收到此错误:无法创建事件。googleapi:错误400:无法同时指定默认提醒和覆盖。不能使用默认提醒和指定覆盖

谢谢

根据我对的阅读,您似乎不应该在设置
覆盖
的同时指定
usefault:false,
。不要将
UseDefault:false,
part放入,它将默认为false,这是在想要删除已经存在的覆盖时唯一需要设置的

因此,预期的代码是:

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},
        },
    },
}

您应该使用
usefault
发送
ForceSendFields
,并将
usefault
设置为
false

&calendar.EventReminders{
    Overrides: []*calendar.EventReminder{
        {
            Method:  "email",
            Minutes: 12,
        },
    },
    UseDefault:      false,
    ForceSendFields: []string{"UseDefault"},
}

谢谢你的回答。在Go中,bool的默认值是false,所以当我们没有指定它时,UserDefault值总是false。在这个示例代码中,我们必须为UserDefault:设置false。我不知道为什么谷歌删除了Go部分的提醒示例代码。您可以在Java或PHP部分看到它。我找到了解决方案。我们必须在usefault:false之后添加
ForceSendFields:[]字符串{“usefault”},
,因为他们认为false值是空值,并且没有将其发送到服务器: