Google 日历API,如何添加新生成的 google 会议的事件?
Google Calendar API, how to add an event with attached newly generated google meet?
我正在尝试了解如何生成 Google 日历事件并将其附加到 Google PHP 中的会面距离。
文档 (https://developers.google.com/calendar/create-events#conferencing) is not clear about this part, the classes and methods for PHP are documented (https://developers.google.com/resources/api-libraries/documentation/calendar/v3/php/latest/class-Google_Service_Calendar_CreateConferenceRequest.html) 所以它们存在。在文档中有一个 javacript 示例,但我不知道如何将其翻译成 php 代码。
我用谷歌搜索了一下,但之前似乎没有其他人有过这种需要。
更新:我想我已经找到问题所在。 javascript 文档报告需要 setDocumentDataVersion(1) 才能处理会议。
这里有一个关于它的使用的简短文档:
Version number of conference data supported by the API client. Version 0 assumes no conference data support and ignores conference data in the event's body. Version 1 enables support for copying of ConferenceData as well as for creating new conferences using the createRequest field of conferenceData. The default is 0.
PHPAPI好像没有这个方法,所以我不能设置为1。
这可能就是我的代码无法将 google 会议附加到我的活动的原因。
这是我的测试代码。到这里它工作正常,它在我的日历中创建了一个事件。
# Booking
$calendarId = 'test@group.calendar.google.com'; #
$event = new Google_Service_Calendar_Event();
$event->setSummary('Test');
$event->setDescription('Test Test');
$start = new Google_Service_Calendar_EventDateTime();
$start->setDateTime('2020-11-30T19:00:00+01:00');
$event->setStart($start);
$end = new Google_Service_Calendar_EventDateTime();
$end->setDateTime('2020-11-30T19:20:00+01:00');
$event->setEnd($end);
$attendee1 = new Google_Service_Calendar_EventAttendee();
$attendee1->setEmail('mytestemail@testtest.com');
// ...
$attendees = array($attendee1,
// ...
);
$event->attendees = $attendees;
#Try to create a Google Meet and attach it to event
$solution_key = new Google_Service_Calendar_ConferenceSolutionKey();
$solution_key->setType("hangoutsMeet");
$confrequest = new Google_Service_Calendar_CreateConferenceRequest();
$confrequest->setRequestId("3whatisup3");
$confrequest->setConferenceSolutionKey($solution_key);
$confdata = new Google_Service_Calendar_ConferenceData();
$confdata->setCreateRequest($confrequest);
$event->setConferenceData($confdata);
$createdEvent = $service->events->insert($calendarId, $event);
有什么建议吗?
我相信你的目标和情况如下。
- 您想使用 php 的 Google Meet 使用 googleapis 创建新活动。
- 您已经能够使用日历创建新活动 API。
为了将 Google Meet 添加到您的脚本,已设置 conferenceDataVersion
。在这种情况下,插入方法似乎是insert( string $calendarId, Google_Service_Calendar_Event $postBody, array $optParams = array() )
。所以请修改你的脚本如下。
发件人:
$createdEvent = $service->events->insert($calendarId, $event);
收件人:
$createdEvent = $service->events->insert($calendarId, $event, array('conferenceDataVersion' => 1));
参考文献:
我正在尝试了解如何生成 Google 日历事件并将其附加到 Google PHP 中的会面距离。
文档 (https://developers.google.com/calendar/create-events#conferencing) is not clear about this part, the classes and methods for PHP are documented (https://developers.google.com/resources/api-libraries/documentation/calendar/v3/php/latest/class-Google_Service_Calendar_CreateConferenceRequest.html) 所以它们存在。在文档中有一个 javacript 示例,但我不知道如何将其翻译成 php 代码。
我用谷歌搜索了一下,但之前似乎没有其他人有过这种需要。
更新:我想我已经找到问题所在。 javascript 文档报告需要 setDocumentDataVersion(1) 才能处理会议。
这里有一个关于它的使用的简短文档:
Version number of conference data supported by the API client. Version 0 assumes no conference data support and ignores conference data in the event's body. Version 1 enables support for copying of ConferenceData as well as for creating new conferences using the createRequest field of conferenceData. The default is 0.
PHPAPI好像没有这个方法,所以我不能设置为1。 这可能就是我的代码无法将 google 会议附加到我的活动的原因。
这是我的测试代码。到这里它工作正常,它在我的日历中创建了一个事件。
# Booking
$calendarId = 'test@group.calendar.google.com'; #
$event = new Google_Service_Calendar_Event();
$event->setSummary('Test');
$event->setDescription('Test Test');
$start = new Google_Service_Calendar_EventDateTime();
$start->setDateTime('2020-11-30T19:00:00+01:00');
$event->setStart($start);
$end = new Google_Service_Calendar_EventDateTime();
$end->setDateTime('2020-11-30T19:20:00+01:00');
$event->setEnd($end);
$attendee1 = new Google_Service_Calendar_EventAttendee();
$attendee1->setEmail('mytestemail@testtest.com');
// ...
$attendees = array($attendee1,
// ...
);
$event->attendees = $attendees;
#Try to create a Google Meet and attach it to event
$solution_key = new Google_Service_Calendar_ConferenceSolutionKey();
$solution_key->setType("hangoutsMeet");
$confrequest = new Google_Service_Calendar_CreateConferenceRequest();
$confrequest->setRequestId("3whatisup3");
$confrequest->setConferenceSolutionKey($solution_key);
$confdata = new Google_Service_Calendar_ConferenceData();
$confdata->setCreateRequest($confrequest);
$event->setConferenceData($confdata);
$createdEvent = $service->events->insert($calendarId, $event);
有什么建议吗?
我相信你的目标和情况如下。
- 您想使用 php 的 Google Meet 使用 googleapis 创建新活动。
- 您已经能够使用日历创建新活动 API。
为了将 Google Meet 添加到您的脚本,已设置 conferenceDataVersion
。在这种情况下,插入方法似乎是insert( string $calendarId, Google_Service_Calendar_Event $postBody, array $optParams = array() )
。所以请修改你的脚本如下。
发件人:
$createdEvent = $service->events->insert($calendarId, $event);
收件人:
$createdEvent = $service->events->insert($calendarId, $event, array('conferenceDataVersion' => 1));