问题描述
我想使用 Google Meet api,它用于 Slack 的 Hangouts 集成,说明如下
TL;DR:
可以生成诸如 https://meet.google.com/new?gid=123&gd=qwe987
之类的链接,因此会显示一个模式,该模式可以询问用户的确认,然后将一些请求从用户的浏览器(打开 Google Meet 页面的位置)发送到某个端点(可能是从 gid
确定,似乎是 google application id
)。有没有办法将我的应用程序配置为具有网络钩子,以便我可以生成这些自定义链接?
有Google+ Hangouts app for Slack。这是它的工作原理(在您的工作区中添加应用程序之后):
- 您在任何 Slack 频道中发送
/hangout
命令 - slackbot 在此频道中发送“仅对您可见”消息,其中包含开始新视频群聊的链接。它看起来像这样(我更改了链接中的数据):
https://meet.google.com/new?gid=691521906844&gd=THTJ30X6W%7CU01113BD13M%7CD01113BDB5Z%7Csuren%7C%7C1846381238693%7C1%7CB01QFGG5GJF%7CE1MDm4DWcuVa0RbN5ZT9o5KF
- 当您访问该链接时,新会议会立即开始,并且页面会显示带有文本“要让其他人加入此视频通话,请将链接发布到您的 Slack 频道”的模式,并带有“取消”和“发布”按钮.
- 当您单击“发布”时,一条新消息将发送到 Slack 频道,该频道将发送命令。文本为“@Suren Khorenyan 发起了 Google+ 环聊,希望你加入。加入环聊。”并包含之前创建的会议链接
我如何将此集成用于另一个应用程序,例如 Mattermost(或其他任何应用程序,例如通过机器人进行 Telegram 聊天)?
如我所见,网址中的数据略有变化。可能是 Google Meet 的有效负载触发 Slack 发送带有频道链接的消息。
-
gid
似乎类似于 google app id -
gd
似乎类似于 google data。如果我对它进行 url-decode,它就会变成THTJ30X6W|U01113BD13M|D01113BDB5Z|suren||1846381238693|1|B01QFGG5GJF|E1MDm4DWcuVa0RbN5ZT9o5KF
。这是某种有效载荷,由管道分隔(显然),但我不知道这意味着什么(suren
是我在 Slack 工作区中的用户名,可能用于创建邀请消息) .
当我点击 Post
时,会发生这种情况:
- 向
POST
发送了一个新的https://hooks.slack.com/services/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
请求,并带有表单数据
hangout_id: 1812381238693
hangout_url: https://meet.google.com//abc-iuqx-def
- 一条新消息发布到 Slack 频道
Google meet 知道在哪里回帖!这是在 Google 应用程序中配置的吗(应用程序 ID 通过 gid
提供)?我如何为这种行为配置我的应用程序? 在哪里可以设置 webhook url?
如果我们分解请求,我们可以看到 url 包含 gd
负载的某些部分:
和表单数据包含:
-
hangout_id
- 这是在我名字之后的gd
负载中 -
hangout_url
- 显然,这是新创建的会议的网址
如何根据我的需要更改它?
我在 Google Api 信息中心(此处为 console.developers.google.com/apis
)创建了一个新应用程序,但找不到用于此集成的任何文档。 Google+ Hangouts API
中有 API Library
,但显示的是 Apps will continue to function until April 25,2017.
。
我试图从另一个方面接近它:
在 API Library
中有 Google 日历。我在 GitHub 上找到了 mattermost-hangout
应用程序(必须 update it a bit,所以它适用于更新的 api)。这是它的工作原理:
- oauth2 用于在 google 上授权(单个帐户)
- 它处理
POST
请求,该请求是从 Mattermost 接收的(由斜杠命令触发),- 使用 Google Calendar API(带会议)创建新的日历活动,
- 从响应中获取环聊网址,并在 Mattermost 频道中发送一条新消息,邀请加入会议。
但它有一些缺点:
- 您必须使用一个帐户来授权所有事件创建事件(是的,它可以升级以授权任意数量的用户,但这会很不方便。为什么要强制任何人提供对其 Google 帐户的访问权限,当 Google Meet 授权只发生在浏览器中,我们不需要创建事件)
- 用于身份验证的帐户现在在他的日历中有事件。当然,事件可以被删除,但这不是方式。
是否有关于使用 gid
和 gd
参数的文档?
通常,我想找到一种方法在我的应用程序中配置 webhook,因此当 Google Meet 在 gid
查询参数中找到我的应用程序 ID 时,它会查看应用程序的配置并向我的应用程序发送请求(之前配置的端点(我假设它是这样工作的))。
当然有可能它是某种内部 API,不能被所有人使用,但我找不到关于此的任何信息。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)