Google Calendar API:创建事件时无法设置AllowedConferenceSolutionTypes包含hangoutsMeet

问题描述 投票:0回答:1

[使用Google APIs Client Library for PHP,我试图创建一个新的日历事件并附加一个hangoutsMeet会议。尝试这样做时,出现错误,提示Invalid conference type value

使用相同的代码,我可以创建一个新事件并附加一个eventHangout会议。

我了解为什么会收到错误:我的日历仅支持eventHangout会议类型。

-----于2020年4月3日编辑以添加更多详细信息-----

但是,仅当我尝试通过API创建事件时,这才显示为限制。当我使用Google日历界面手动创建活动时,我am能够添加Google Meet。实际上,这是下拉菜单中显示的唯一会议选项。

-----结束编辑-----

我的问题是,如何更新日历设置(使用或不使用API​​),以便可以使用API​​创建带有hangoutsMeet会议的事件

这里有一些示例代码来演示我已经尝试过的内容:

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' => 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."
  }
}

其他详细信息:

  • 我正在使用已启用域范围委派的服务帐户
php google-calendar-api google-api-php-client
1个回答
0
投票

[使用G Suite时,应使用eventNamedHangout类型。如eventHangout资源的文档中所述,event类型适用于使用者:

可能的值是:

“” eventHangout“用于针对消费者的环聊(http://hangouts.google.com

“ eventNamedHangout”(针对G Suite用户的传统环聊(http://hangouts.google.com

“” hangoutsMeet“代表环聊聚会(http://meet.google.com

“ 3P会议提供商的“ addOn”

© www.soinside.com 2019 - 2024. All rights reserved.