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

Google Calendar API - Create Events to Send Updates

我正在尝试向我的 Google 日历事件中添加一些 'flags'。我正在使用 PHP API。最具体地说,我正在尝试设置 ['sendUpdates'=>'all'] 标志,以便每当修改活动时,与会者列表中的所有人都会收到通知。我试图在 inserting/creating 事件中添加此参数。我也尝试过使用补丁。但是好像没有效果。

下面是一些示例代码:

$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);

然后在这不起作用之后,我只是尝试 'patch' 使用以下事件:

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

None 正在努力正确设置 'sendUpdates' 标志。它确实创建了事件。几乎 运行 没有关于如何解决这个问题的选项。关于如何执行此操作的文档非常不清楚,并且在 Stack Overflow 或其他任何地方都找不到太多内容。

有人有什么建议吗?

您非常接近设置 sendUpdates parameter to all. Beforehand you have to keep in mind that sendUpdates is a parameter, not a property. Therefore you should set it in the method,不在请求正文中。所以你只需要把脚本修改成这样:

$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);