我正在尝试使用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);
一切正常。该活动将与所有与会者一起创建。但是没有收到电子邮件通知。我在这里做错了什么?
答案 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
方法。