- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试为 google hangouts 创建一个简单的“聊天机器人”,它可以在聊天中发送常规消息。我找到了 this documentation但我发现它非常复杂。
它包含一个“完整示例”,但我不确定如何找到现有谷歌环聊聊天的“空间”ID。这无处解释。如何找到现有 Google 聊天的“空间”ID?
此外:是否有某个地方的SIMPLE (!!!) 文档如何简单地向现有聊天发布消息?
最佳答案
您可以使用 spaces.list
获取机器人所属的空间列表,后跟 spaces.get
获取有关该空间的更多信息,或者设置特定于房间的 Webhook。
重要说明: 如果您拥有 Google Workspace 帐户,则只能使用 Google Hangouts Chat API - 它不能单独与 Gmail 一起使用。第二种解决方案使用 Webhook,需要访问 https://chat.google.com仅适用于 Google Workspace 网域。不幸的是,使用消费者 @gmail.com
帐户根本不可能。
设置服务帐户后as per Step 1 on this page ,您可以从 Google Cloud 项目 UI 下载服务帐户的凭据,方法是单击服务帐户名称右侧的 ⋮
按钮,然后按照 Create 键
按钮并选择 JSON 作为 key 类型。 请务必妥善保存此文件,因为此 key 只有一份副本。
下载此 JSON 文件后,您可以在 python 代码中将其用作设置服务对象时的凭据:
from httplib2 import Http
from oauth2client.service_account import ServiceAccountCredentials
from apiclient.discovery import build
scopes = 'https://www.googleapis.com/auth/chat.bot'
credentials = ServiceAccountCredentials.from_json_keyfile_name(
'credentials.json', scopes)
chat_service = build('chat', 'v1', http=credentials.authorize(Http()))
要发出 spaces.list
请求,您可以使用这个新建的 chat_service
,并从响应中提取 hte 空间列表:
def extract(n):
return n['name']
spaces_list = chat_service.spaces().list().execute()
all_spaces = map(extract, spaces_list['spaces'])
然后您可以使用这些空格之一从 python 程序发送消息:
response = chat_service.spaces().messages().create(
parent=all_spaces[0],
body={'text': 'Test message'}).execute()
print(response)
Apps Script project
并输入空部署项目的部署 ID。您可以为特定聊天设置网络钩子(Hook),而不是直接使用 API,并使用硬编码 URL,您可以从外部脚本向房间发送消息。
完整步骤载于 this page但我也会在这里进行介绍。
转到您希望发送消息的房间 https://chat.google.com ,然后从房间名称旁边的下拉菜单中选择 Manage Webhooks
。
为您的机器人输入名称和可选头像,然后按 SAVE
。这将为您提供一个 webhook URL 以在您的 python 脚本中使用。
在本地,确保您的环境中安装了 httplib2
,并将以下脚本复制到一个新的 .py
文件中:
from json import dumps
from httplib2 import Http
def main():
"""Hangouts Chat incoming webhook quickstart."""
url = 'webhook-url'
bot_message = {
'text' : 'Hello from a Python script!'}
message_headers = {'Content-Type': 'application/json; charset=UTF-8'}
http_obj = Http()
response = http_obj.request(
uri=url,
method='POST',
headers=message_headers,
body=dumps(bot_message),
)
print(response)
if __name__ == '__main__':
main()
确保将 webhook-url
字符串替换为上一步中聊天 UI 中提供的 webhook。
现在您只需保存文件并运行它 - 这将自动向上述聊天空间发送一条消息:
关于google-api - 如何使用 python 向 google hangouts 发送消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65641069/
我正在尝试使用 API 为 Google Hangouts 制作一个应用程序。我想我不是唯一遇到这个“问题”的人。 我需要自动或半自动添加参与者。但我找不到方法去做。今天我发现了一个可以做类似事情的应
我按照以下步骤操作: 通过转到 Chrome 网上应用店开发者仪表板并单击“立即支付此费用”链接来验证您在 Chrome 网上应用店的帐户。 按照 Google Developers Console
我一直在尝试让 Google Hangout 今天公开发布,但肯定遗漏了一些东西......我花了几个小时阅读帖子并重新阅读 Google + Hangout API 上的页面。 我去了 Chrome
我目前正在玩一些 Hubot,并希望将其连接到我和我 friend 的视频群聊 channel 。问题是我似乎找不到适配器。可能不存在(因为谷歌视频群聊最近改造了他们的 api)但我想先问你。 我找到
关闭。这个问题需要更多focused .它目前不接受答案。 想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post . 4年前关闭。 Improve this questi
我正在尝试使用 Cloud Functions 和 Hangout Chat API 创建聊天机器人作为 POC 的一部分。 为此,我正在使用我的个人 Gmail 和谷歌云帐户。我没有任何 GSuit
在 Google Hangouts 中创建一个简单的演讲和演示应用。 我想使用gapi.hangout.onair无需直播即可运行。我正在尝试为参与者分配“演讲者” Angular 色,如果可以的话,
这里之前有关于从 Android 上的 Intent 启动 Google Hangout 的讨论: start google hangouts in android How can I start a
我们的房子(我和 5 个室友住在一起)使用我们手机上的谷歌视频群聊来交流各种事情。最近我们一直在讨论一些计划好的事情,比如轮流清洁房子的某些部分,我认为让机器人在环聊聊天中宣布有关日程安排的相关信息会
我正在开发一个Webhook,并且希望它能够@提及特定的用户。 simple message format使用格式指定特定用户。由于它不是漫游器,因此它无法处理传入消息,因此无法从发件人字段中提取,如
Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。 想改善这个问题吗?更新问题,以使为on-topic。 上
Hangout Chat 仅向机器人发送新消息,不会发送编辑和删除消息,文档中也没有任何信息 https://developers.google.com/hangouts/chat/reference
For the purpose of this question, Hangouts chat means the interface that you access using the URL ch
试图弄清楚如何在 Hangouts Chat 中将 webhook 消息发布到聊天室中的现有线程。 当我发布到 webhook URL 时,我收到以下响应: { "name": "spaces
我们开发了一个环聊聊天机器人(纯 JavaScript,谷歌应用程序脚本),以便能够在离线时与用户互动。我们想知道与机器人聊天的用户的位置,是否可以获得与机器人聊天的用户的 GPS 坐标?用户是否打开
我需要能够从在线用户数据库中切换参与者进出视频 session 。我一直在使用环聊,因为它们是我所知道的唯一开源视频 session 服务。我知道在环聊中你可以获得“踢”某人的扩展,但我似乎无法在他们
Doc说如果你想创建一个面板窗口,你应该使用 chrome.windows.create({...,type:"panel"}, function callback) 同时,它表示“指定要创建的浏览器
是否可以在我的企业网站上添加一个 Google Hangouts 按钮,点击该按钮会向我发起调用?我有一个商业网站,我希望任何人都可以打电话,就像您可以嵌入网站页面的 Skype 按钮一样。我遇到的问
所以如果我们看一下:https://developer.mozilla.org/en-US/docs/Web/API/Screen_Capture_API getDisplayMedia 的状态 -
我正在尝试为“您自己域中的每个人”启用我的机器人。出现此错误。 如果我通过“您域中的特定人员和组”启用它 - 它有效。 有人知道我错过了什么吗? 最佳答案 使用 HEAD 部署时,无法在整个域中共享
我是一名优秀的程序员,十分优秀!