gpt4 book ai didi

python - Google Hangouts Chat 机器人通过传入的 webhook 发送 DM?

转载 作者:太空宇宙 更新时间:2023-11-04 04:40:38 32 4
gpt4 key购买 nike

是否可以设置this simple bot ,使用传入的 webhook,但将消息作为 DM(而不是 @mention)发送给特定用户?
我的猜测是没有。但是我怎样才能做到这一点呢?

现在,消息刚刚发送到添加机器人的房间,我在 messaging docs 的 DM 上看不到任何内容。 .

您目前可以在 Slack 中通过设置所谓的 bot user 轻松实现这一点。并使用他们的 chat.postMessage但我想改为在 Google Hangouts Chat 中执行此操作。

from httplib2 import Http
from json import dumps

#
# Hangouts Chat incoming webhook quickstart
#
def main():
url = '<INCOMING-WEBHOOK-URL>'
bot_message = {
'text' : 'Hello from 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()

最佳答案

截至目前,无论您是使用网络挂接(就像您所做的那样)还是使用 REST API,您都需要他们的空间 ID 或网络挂接 URL 才能私下向用户发送 DM。除非您拥有此空间 ID/Webhook,否则您无法向用户发送消息。获取它的一种方法是向用户询问他们的 spaceID 并存储它。无论哪种方式,Google API 都没有提供一种方法来检索与您正在其中交谈的当前空间 ID 不同的空间 ID。这意味着,机器人只能向其在某个时间点与之交互的用户发送消息。

可以从事件 JSON (event['space']['name']) 中检索当前空间 ID 值,然后使用 messages.create 向用户发送新消息

service.spaces().messages().create( parent = spaceName, body = response).execute()

或者可以从 url https://chat.google.com/dm/ 中检索--> 空间ID在这里<---

Google 尚未发布任何为特定用户生成您自己的 spaceID 的方法。

编辑:为了获取 webhook url。见下文:enter image description here

然后将 webhook url 复制并粘贴到上面的代码中。 enter image description here

注意:如果您需要,可以使用谷歌聊天的常用 url 和上面提到的空间 ID 以及以下格式的 key 和访问 token 来制作此 webhook url:https://chat.googleapis.com/v1/spaces/ < space ID >/messages?key=A< key goes here > &token=< access token here >有关如何获取 key 和访问 token 的信息,请阅读此处提供的文档:https://developers.google.com/identity/protocols/OAuth2

关于python - Google Hangouts Chat 机器人通过传入的 webhook 发送 DM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50714972/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com