首页 > 解决方案 > 谷歌日历会议链接不是通过谷歌日历 API (PHP) 自动创建的

问题描述

谷歌日历会议链接不是通过谷歌日历 PHP API 自动创建的。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',
    'timeZone' => 'America/Los_Angeles',
  ),
  '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();   


        

标签: phpgoogle-apigoogle-calendar-apigoogle-api-php-client

解决方案


解决方案

为了在 Event 中创建会议数据属性,您必须发送一个激活 ConferenceDataVersion 标志的请求。

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

要在 PHP 中传递此设置,您可以使用以下指令:

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

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

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

例子:

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

参考

创建活动

日历 API 事件插入


推荐阅读