【问题标题】:Set google event reminders with api for Google Calendar from php使用 api 为来自 php 的 Google 日历设置 google 事件提醒
【发布时间】:2014-05-02 15:36:14
【问题描述】:

我有一个用于创建谷歌日历事件的脚本 php。 脚本工作正常,但设置日期的功能错误。

他的脚本

[...initial statements...]
$event = new Google_Event();
$event->setSummary("test");
$event->setLocation("location");
$start = new Google_EventDateTime();
$start->setDateTime(2014-05-01T10:00:00.000-07:00);
$event->setStart($start);
$end = new Google_EventDateTime();
$end->setDateTime(2014-05-01T10:00:00.000-08:00);
$event->setEnd($end);

$reminder = new Google_EventReminders();
$reminder->setUseDefault(false);
$overrides = array("method"=> "popup","minutes" => "15");
$reminder->setOverrides(array($overrides));
$event->setReminders($reminder);

$createdEvent = $service->events->insert('primary', $event);
[...]

在创建事件时,我有两个提醒 电子邮件 10 分钟,弹出窗口 10 分钟

【问题讨论】:

    标签: php api google-calendar-api reminders


    【解决方案1】:

    这是我的工作方式:)

    $event = new Google_Event(); //note in the API examples it calls Event(). Apparently, they changed it and didn't update examples.
    $event->setSummary($task);
    $event->setColorId('4');
    $event->setDescription($type);
    $event->setLocation($type);
    $start = new Google_EventDateTime(); //note in the API examples it calls EventDateTime().
    $start->setDateTime($date1);
    $event->setStart($start);
    $end = new Google_EventDateTime(); //note in the API examples it calls EventDateTime().
    $end->setDateTime($date2);
    $event->setEnd($end);
    $attendee1 = new Google_EventAttendee(); //note in the API examples it calls EventAttendee().
    $attendee1->setEmail('myemail@gmail.com'); //make sure you actually put an email address in here
    
    $reminderI = new Google_EventReminder();
    $reminderI->setMethod('email');
    $reminderI->setMinutes('25');
    
    $reminder = new Google_EventReminders();
    $reminder->setUseDefault('false');
    $reminder->setOverrides(array($reminderI));
    $event->setReminders($reminder);
    

    【讨论】:

    • 嗨@Nick,虽然我已经设置了提醒,但日历仍然显示“未设置通知”。
    【解决方案2】:

    我花了几分钟弄明白了,试试这个:

    $reminders = new Google_Service_Calendar_EventReminders();
    $reminders->setUseDefault(false);
    
    $reminder = new Google_Service_Calendar_EventReminder();
    $method = empty($v['method']) ? 'email' : $v['method'];
    $minute = empty($v['minute']) ? '10' : $v['minute'];
    $reminder->setMethod($method);
    $reminder->setMinutes($minute);
    
    $reminders->setOverrides(array($reminder));
    
    $targetEvent->setReminders($reminders);
    

    注意这里$reminders->setOverrides(array($reminder)); 我们需要在调用$reminders->setOverrides 时将$reminder 放在array

    我正在使用 API V3,我猜您正在使用 V2。反正应该差不多吧。

    希望这会有所帮助。

    【讨论】:

      【解决方案3】:

      我认为问题出在这里:

      $overrides = array("method"=> "popup","minutes" => "15");
      

      您实际上是在array 中包装了一个数组:

      setOverrides(array($overrides));
      

      override 应该是 Google_Service_Calendar_EventReminder 类型的对象。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-01
        • 2017-01-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-06
        相关资源
        最近更新 更多