api 更新后获取 HangoutLink
Posted
技术标签:
【中文标题】api 更新后获取 HangoutLink【英文标题】:Get HangoutLink after api update 【发布时间】:2022-01-07 10:59:50 【问题描述】:这是我从 google-calendar-api 检索数据的方式:
我最近添加了conferenceDataVersion=1
,但没有任何作用。
const uri = `$googleapiURL/calendar/v3/calendars/$calendarId/events?conferenceDataVersion=1`;
const response = await rp.post(
uri,
headers:
authorization: `Bearer $token`,
,
body,
json: true,
simple: false,
resolveWithFullResponse: true,
);
我以前可以通过以下方式进行环聊:
const link = response.body.hangoutLink,
但是现在我们在 body 中没有 hangoutLink
属性了。我怎么能得到它?
我正在阅读the documentation 关于正文请求查询参数的信息。有一个conferenceData
,但没有示例说明如何使用它。
【问题讨论】:
插入活动后,您是否可以尝试在 Google 日历网络用户界面上查看它并检查您是否在活动中看到 Google Meet 选项,例如this sample image? @IrvinJayG.嗨!谢谢你的帮助,伙计。会议没有创建,我没有你的图片显示的“加入”按钮。官方文档有点混乱,但我发现我需要添加conferenceData
对象。
【参考方案1】:
2020 年 9 月之后。Google Calendar API 发生了变化,不再默认创建 meet。我们需要明确“告诉”我们想要创建一个聚会(环聊链接)。
1 - 首先,我们需要添加一个查询参数 conferenceDataVersion=1
2 - 我们需要向请求正文添加一个新对象。
conferenceData:
createRequest:
conferenceSolutionKey:
type: 'hangoutsMeet',
,
requestId: <<randomString>>,
,
更多信息:
根据Events: insert 和Event resource reperesentation 的文档:
conferenceDataVersion
:integer
API客户端支持的会议数据版本号。版本 0 假定不支持会议数据并忽略事件正文中的会议数据。版本 1 支持复制会议数据以及使用会议数据的 createRequest 字段创建新会议。默认值为 0。可接受的值为
0
到1
(含)。
conferenceData.createRequest
:nested object
生成新会议并将其附加到事件的请求。数据是异步生成的。要查看数据是否存在,请检查
status
字段。
conferenceSolution
和至少一个entryPoint
,或者createRequest
是必需的。
conferenceData.createRequest.conferenceSolutionKey.type
:string
会议解决方案类型。
如果客户端遇到不熟悉的类型或空类型,它应该仍然能够显示入口点。但是,它应该不允许修改。
可能的值是:
“eventHangout
”用于面向消费者的环聊 (http://hangouts.google.com) // 已弃用 “eventNamedHangout
”适用于 G Suite 用户的经典环聊 (http://hangouts.google.com) // 已弃用 “hangoutsMeet
”用于 Google Meet (http://meet.google.com) “addOn
”用于 3P 会议提供商
conferenceData.createRequest.requestId
:string
客户端为此请求生成的唯一 ID。 客户端应为每个新请求重新生成此 ID。如果提供的 ID 与上一个请求的 ID 相同,则忽略该请求。
有了这些信息,我们可以生成一个日历事件创建请求,其中包含一个会议链接作为会议解决方案。
我对随机字符串的解决方案是生成一个 uuid。
【讨论】:
以上是关于api 更新后获取 HangoutLink的主要内容,如果未能解决你的问题,请参考以下文章