php - 谷歌日历会议链接不是通过谷歌日历 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();
解决方案
解决方案
为了在 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"
]
]
参考
推荐阅读
- python - 模糊系统 ValueError
- python - 在 Python 中将天十进制数数组转换为 unix 时间戳
- arrays - 尝试将 ASCII 重新索引为 0、1、2、34 等
- sql - 需要使用内部联接进行更新查询
- symfony - Symfony 5 - 用户从表中清空元素
- javascript - RXJS,以及关键字 from。将数组、promise 或 iterable 转换为 observable
- javascript - “datetime-local”控件:控件关闭时会触发哪些事件?
- flutter - 如何在颤动中在 ARCore 中插入文本
- cmake - 在 Windows 10 上构建 bullet3 - 并非所有库都已安装
- php - 从给定的两个值中从多维数组中查找值