Google日历API -创建事件发送更新



我正在尝试添加一些'标志'到我的谷歌日历事件。我正在使用PHP API。最具体地说,我正在尝试设置[' sendupupdates '=>'all']标志,以便无论何时修改事件,与会者列表上的所有人都将得到通知。我尝试在插入/创建事件时添加此参数。我也试过使用补丁。但它似乎不起作用。

下面是一些示例代码:
$opts = [ 
'start' => [
'date' => '2021-10-11',
'timeZone' => 'US/Pacific'
],  
'end' => [
'date' => '2021-10-11',
'timeZone' => 'US/Pacific'
],  
'summary' => 'TEST EVENT',
'description' => 'Test description',
'attendees' => [['email'=>'test@test.com']],  
'guestsCanModify' => false,
'guestsCanInviteOthers' => true,
'guestsCanSeeOtherGuests' => true,
'reminders' => [
'useDefault' => true,
],  
'sendUpdates' => 'all',
];
$event = new Google_Service_Calendar_Event($opts);
$new_event = $service->events->insert($calendar_id, $event);

然后在这不起作用之后,我只是试图用以下内容"修补"事件:

$service->events->patch($calendar_id, $new_event['id'], $new_event, ['sendUpdates'=>'all']);

这些都不能正确设置'sendUpdates'标志。它确实创建了事件。我已经没有办法解决这个问题了。关于如何做到这一点,文档非常不清楚,并且在Stack Overflow或其他任何地方都找不到太多。

谁有什么建议?

您非常接近将sendUpdates参数设置为all。事先你必须记住,sendUpdates是一个参数,而不是一个属性。因此,您应该在方法中设置它,而不是在请求体中。因此,您只需要将脚本修改为如下所示:

$opts = [ 
'start' => [
'date' => '2021-10-11',
'timeZone' => 'US/Pacific'
],  
'end' => [
'date' => '2021-10-11',
'timeZone' => 'US/Pacific'
],  
'summary' => 'TEST EVENT',
'description' => 'Test description',
'attendees' => [['email'=>'test@test.com']],  
'guestsCanModify' => false,
'guestsCanInviteOthers' => true,
'guestsCanSeeOtherGuests' => true,
'reminders' => [
'useDefault' => true,
],  
];
$optionalParameters = array(
"sendUpdates" => "all"
);
$event = new Google_Service_Calendar_Event($opts);
$new_event = $service->events->insert($calendar_id, $event, $optionalParameters);

最新更新