Google Hangouts Chat bot通过传入的webhook发送DM?

时间:2018-06-06 07:50:04

标签: python hangouts-chat

是否可以使用传入的webhook设置this simple bot,但是将消息作为DM(不是@mention)发送给特定用户?
我的猜测是否定的。但那我怎么能实现这个呢?

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

你现在可以通过设置一个所谓的bot user并使用他们的chat.postMessage在Slack中轻松实现这一目标,但我想在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()

1 个答案:

答案 0 :(得分:1)

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

可以从事件JSON(事件[&#39;空格&#39;] [&#39;名称&#39;])中检索当前的空间ID值,然后使用messages.create将新消息发送到用户

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

或者可以从网址https://chat.google.com/dm/检索 - &gt;空格ID在这里&lt; ---

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

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

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

注意:如果需要,可以使用通常的Google聊天网址制作此网络网址,其中包含上述空间ID以及此格式的密钥和访问令牌:https://chat.googleapis.com/v1/spaces/&lt;空间ID&gt; / messages?key = A&lt;钥匙到这里&gt; &安培;令牌=&LT;访问令牌&gt; 有关如何获取密钥和访问令牌的信息,请阅读此处提供的文档:https://developers.google.com/identity/protocols/OAuth2