为了账号安全,请及时绑定邮箱和手机立即绑定

Google Calendar API:无法设置 AllowedConferenceSolution

Google Calendar API:无法设置 AllowedConferenceSolution

PHP
狐的传说 2022-12-03 10:45:55
使用Google APIs Client Library for PHP,我正在尝试创建一个新的日历事件并附加一个hangoutsMeet会议。当我尝试这样做时,我收到一条错误消息,说明Invalid conference type value.使用相同的代码,我能够创建一个新事件并附加一个eventHangout会议。我明白为什么会收到错误消息:根据 API,我的日历仅支持eventHangout会议类型。<<<< 2020 年 4 月 3 日编辑 #1Andres Duarte的回答后的澄清:这仅在我尝试通过 API 创建事件时显示为限制。当我使用 Google 日历界面手动创建活动时,我可以添加 Google Meet。事实上,这是下拉列表中显示的唯一会议选项。>>>>我的问题是,如何更新我的日历设置(有或没有 API)以便我可以使用 API 创建带有附加hangoutsMeet会议的事件?这是一些示例代码来演示我尝试过的内容:<<<< 2020 年 4 月 3 日编辑 #2hooman182的回答后的澄清:我已经更新了我的代码示例以证明我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',            )        )    )));
查看完整描述

2 回答

?
互换的青春

TA贡献1797条经验 获得超6个赞

在创建活动之前,您需要使用服务帐户凭据模拟您 G Suite 域中的用户,这样您就可以创建hangoutsMeet会议类型的活动,这仅适用于 G Suite 用户。

即使您的服务帐户具有域范围的委派,它也没有与 G Suite 用户相同的权限,来自文档

与用户帐户不同,服务帐户不是您的 G Suite 域的成员。

在您的情况下,这就是为什么您只能使用会议类型创建事件,如事件资源eventHangout文档中所述,会议类型适用于消费者:

可能的值是:

消费者环聊的“eventHangout”( http://hangouts.google.com )

“eventNamedHangout”适用于 G Suite 用户的经典环聊 ( http://hangouts.google.com )

Hangouts Meet 的“hangoutsMeet” ( http://meet.google.com )

3P 会议提供商的“addOn”


查看完整回答
反对 回复 2022-12-03
?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

Appereantly 你忘了在你的请求中添加 requestID。


资源 :为活动添加视频和电话会议


 "conferenceData": {

    "createRequest": {

      "conferenceSolutionKey": {

        "type": "eventHangout"

      },

      "requestId": "yourcodehere"

    }

  }

您可以通过为createRequest提供新生成的requestId(可以是随机字符串)来为事件创建新会议。会议是异步创建的,但您始终可以检查请求的状态,让您的用户知道发生了什么。


我希望这有帮助。


查看完整回答
反对 回复 2022-12-03
  • 2 回答
  • 0 关注
  • 215 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号