无法通过Google Calendar APIPHP自动创建Google Calendar Meet链接

问题描述

无法通过Google Calendar PHP API自动创建Google Calendar Meet链接。 Google Calendar API停止自动创建视频群聊会议链接。几个月前,相同的代码仍在工作,但并非没有。

代码

$client = getClient();
$service = new Google_Service_Calendar($client);
$event = new Google_Service_Calendar_Event(array(
  'summary' => $summary,//'Google Calendar summary','location' => $location,//'USA','description' => $description,//'Book Room','start' => array(
    'dateTime' => $sessionStartTime,//'2018-08-16T14:30:00-00:00','timeZone' => 'America/Los_Angeles',),'end' => array(
    'dateTime' => $sessionEndTime,//'2018-08-16T14:30:00-01:00','attendees' => array(
    array('email' => $attendeesEmailNEW,'resource' => true),'reminders' => array(
    'useDefault' => FALSE,'overrides' => array(
      array('method' => 'popup','minutes' => 10),));
    
$calendarId = 'primary';        
$event = $service->events->insert($calendarId,$event);
$createdID = $event->getId();   


        

解决方法

解决方案

要在事件中创建会议数据属性,您将必须发送激活了ConferenceDataVersion标志的请求。

conferenceDataVersion :API客户端支持的会议数据的版本号。版本0假定不支持会议数据,并且会忽略事件正文中的会议数据。版本1支持复制ConferenceData以及使用ConferenceData的createRequest字段创建新会议。默认值为0。可接受的值为0到1(含)。

要在PHP中传递此设置,可以使用以下说明:

 $service->events->insert($calendarId,$event,['conferenceDataVersion' => 1]);      

设置此标志时,您还必须创建一个名为conferenceData.createRequest的事件属性

与会议相关的信息,例如Google Meet会议的详细信息。要创建新的会议详细信息,请使用createRequest字段。要保留更改,请记住将所有事件修改请求的conferenceDataVersion请求参数设置为1

示例:

"conferenceData" => [
        "createRequest" => [
          "conferenceSolutionKey" => [
            "type" => "hangoutsMeet"
          ],"requestId" => "123"
        ]
      ]

参考

Create Events

Calendar API Event insert