Google Calendar API - sendNotifications无效

时间:2014-11-21 09:50:10

标签: php google-api google-calendar-api

我正在尝试使用Google Calendar API创建活动并邀请多位与会者。

foreach($email_invite_arr as $item){
    if($item){
        $attendee = new Google_Service_Calendar_EventAttendee();
        $attendee->setEmail($item);
        $attendee_arr[]= $attendee;
    }
}
$event->setAttendees($attendee_arr);

$optParams = Array(
    'sendNotifications' => true,
    'maxAttendees' => 10
);
$createdEvent = $service->events->insert('primary', $event, $optParams);

一切正常。该活动将与所有与会者一起创建。但是没有收到电子邮件通知。我在这里做错了什么?

3 个答案:

答案 0 :(得分:2)

您不需要补丁功能。 sendNotification可以很好地创建事件。

我发现当前的指南对我来说并不适合在参与者中循环。这对我有用:

foreach ($staffUserArr as $staffEmail)
{
    $attendee1 = new Google_Service_Calendar_EventAttendee();
    $attendee1->setEmail($staffEmail);

    $attendees[] = $attendee1;
}

$newEvent->attendees = $attendees;

$optParams = Array(
        'sendNotifications' => true,
);

$service->events->insert('primary',$newEvent,$optParams);

答案 1 :(得分:0)

通知由与会者的日历设置。活动组织者只能为与会者设置自己日历的通知。想想通过蜗牛邮件发送正式的聚会邀请函,在聚会开始前20分钟,提醒人们离开房子肯定不是主持人的工作!

除非与会者设置自定义通知,否则将根据与会者对日历的默认通知设置与会者通知。

如果您确实要为与会者设置通知,则需要对每位与会者进行身份验证。

答案 2 :(得分:-1)

因此,Calendar API的insert方法似乎存在问题。我按照此处建议的解决方案:https://code.google.com/p/google-apps-script-issues/issues/detail?id=574并且它有效。以下是我修改过的代码:

foreach($email_invite_arr as $item){
    if($item){
        $attendee = new Google_Service_Calendar_EventAttendee();
        $attendee->setEmail($item);
        $attendee_arr[]= $attendee;
    }
}

$optParams = Array(
    'sendNotifications' => true,
);
$createdEvent = $service->events->insert('primary', $event);

$event->setAttendees($attendee_arr);
$service->events->patch('primary',$createdEvent->getId(),$event, $optParams );

这里的关键是patch方法。