【问题标题】:Set Google Calendar Reminder - Migrate from API v2 to API v3设置 Google 日历提醒 - 从 API v2 迁移到 API v3
【发布时间】:2014-05-03 12:11:04
【问题描述】:

以前,我有以下可用的 Google Calendar API 2

谷歌日历 API v2

    CalendarEventEntry calendarEventEntry = new CalendarEventEntry();
    calendarEventEntry.setTitle(new PlainTextConstruct(message));
    calendarEventEntry.setContent(new PlainTextConstruct(message));
    calendarEventEntry.addTime(when);

    // 0 minute reminder
    Reminder reminder = new Reminder();
    reminder.setMinutes(0);
    reminder.setMethod(Method.SMS);
    List<Reminder> reminders = calendarEventEntry.getReminder();
    reminders.add(reminder);

    // Send the request and receive the response:
    try {
        calendarEventEntry = calendarService.insert(postUrl, calendarEventEntry);
    } catch(IOException exp) {
        log.error(null, exp);
        return false;
    } catch (ServiceException exp) {
        log.error(null, exp);
        return false;
    }

    return true;

现在,我想迁移到 Google Calendar API v3

    // Create a new event.
    Event event = new Event();
    event.setSummary(message);
    event.setStart(startEventDateTime);
    event.setEnd(endEventDateTime);

    // 0 minute reminder
    EventReminder reminder = new EventReminder();
    reminder.setMinutes(0);
    reminder.setMethod("sms");

    List<EventReminder> listEventReminder = new ArrayList<EventReminder>();
    listEventReminder.add(reminder);

    System.out.println("Is null? = " + event.getReminders());

    event.getReminders().setOverrides(listEventReminder);

    try {
        Event createdEvent = service.events().insert(calendarListEntry.getId(), event).execute();
    } catch (IOException ex) {
        log.error(null, ex);
        return false;
    }
    return true;

但是,event.getReminders 将始终返回 null。我想知道,这样做的正确方法是什么?

如果您有兴趣,我将完整的代码集放在 GitHub 上:GoogleCalendar.java

【问题讨论】:

    标签: java google-api google-calendar-api


    【解决方案1】:

    仅通过查看 API,您是否尝试过?

    Event.Reminders reminders = new Event.Reminders();
    reminders.setUseDefault(false);
    List<EventReminder> listEventReminder = new ArrayList<EventReminder>();
    listEventReminder.add(reminder);
    reminders.setOverrides(listEventReminder);
    event.setReminders(reminders);
    
    System.out.println("Is null? = " + event.getReminders());
    

    【讨论】:

    • 谢谢!打算试一试并更新状态。
    • 太棒了!有用!诀窍是,我们需要将setUseDefault 设置为false。我稍微编辑了你的答案。
    • 需要调用两次 setUseDefault(false) 吗? :)
    • 奥普斯。我在复制代码时错过了那行。恢复原状。
    【解决方案2】:

    在当前版本的 API 3 (rev85=1.18-rc) 中,提醒仅适用于 PRIMARY 日历。为其他日历设置提醒将被忽略 - 您将获得默认设置。 没有错误消息,没有文档。

    【讨论】:

      猜你喜欢
      • 2015-07-06
      • 1970-01-01
      • 1970-01-01
      • 2013-12-30
      • 1970-01-01
      • 1970-01-01
      • 2019-02-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多