Используя клиентскую библиотеку API Google * 1001 для PHP, я пытаюсь создать новое событие календаря и прикрепить конференцию hangoutsMeet
. Когда я пытаюсь это сделать, я получаю сообщение об ошибке Invalid conference type value
.
. Используя тот же код, я могу создать новое событие и присоединить конференцию eventHangout
.
I понять, почему я получаю сообщение об ошибке: согласно API мой календарь поддерживает только тип конференции eventHangout
.
<<<< edit # 1 3 апреля 2020 </strong>
Уточнение после ответа Andres Duarte : это появляется только как ограничение, когда я пытаюсь создать событие через API. Когда я вручную создаю событие с помощью интерфейса Календаря Google, я am могу добавить Google Meet. Фактически, это единственный вариант конференц-связи, который отображается в раскрывающемся списке.
>>>>
У меня вопрос, , как я могу обновить настройки календаря? (с или без API), чтобы я мог использовать API для создания событий с прикрепленными hangoutsMeet
конференциями ?
Вот пример кода, демонстрирующий то, что я пробовал:
<<<< правка № 2 от 3 апреля 2020 года </strong>
Уточнение после ответа hooman182 : я обновил пример кода, чтобы продемонстрировать, что я настраиваю requestId
правильно, используя строку.
>>>>
try {
// fetch the calendar
$calendar = 'myCalendar';
$calendarObject = $service->calendars->get($calendar);
echo "<pre>";
echo "\nORIGINAL *******************************************************\n\n";
var_dump($calendarObject->getConferenceProperties()->getAllowedConferenceSolutionTypes());
// set the allowed conferences solutions type
$calendarObject->getConferenceProperties()->setAllowedConferenceSolutionTypes(
array(
"hangoutsMeet",
"eventHangout",
"eventNamedHangout",
)
);
echo "\nUPDATED *******************************************************\n\n";
var_dump($calendarObject->getConferenceProperties()->getAllowedConferenceSolutionTypes());
// save the changes to the calendar
$calendarObject = $service->calendars->patch($calendar, $calendarObject);;
echo "\nSAVED *********************************************************\n\n";
var_dump($calendarObject->getConferenceProperties()->getAllowedConferenceSolutionTypes());
// add a createRequest to my event
$event->setConferenceData(new Google_Service_Calendar_ConferenceData(array(
'createRequest' => array(
'requestId' => md5(time()),
'conferenceSolutionKey' => array(
'type' => 'hangoutsMeet',
)
)
)));
// save the event
$event = $service->events->insert($calendar, $event, array(
'conferenceDataVersion' => 1
));
} catch (Google_Service_Exception $e) {
echo "\nERRORS ********************************************************\n\n";
var_dump($e->getErrors());
die;
}
И вот результат выше:
ORIGINAL *******************************************************
array(1) {
[0]=>
string(12) "eventHangout"
}
UPDATED *******************************************************
array(3) {
[0]=>
string(12) "hangoutsMeet"
[1]=>
string(12) "eventHangout"
[2]=>
string(17) "eventNamedHangout"
}
SAVED *********************************************************
array(1) {
[0]=>
string(12) "eventHangout"
}
ERRORS ********************************************************
array(1) {
[0]=>
array(3) {
["domain"]=>
string(6) "global"
["reason"]=>
string(7) "invalid"
["message"]=>
string(30) "Invalid conference type value."
}
}
Дополнительные сведения:
- Я использую служебную учетную запись с активированным делегированием домена