Google Hangouts Чат бот для отправки DM через входящий webhook? - PullRequest
0 голосов
/ 06 июня 2018

Можно ли настроить этого простого бота , используя входящий веб-крючок, но отправить сообщение в виде DM (а не @mention) конкретному пользователю (ям)?
Я предполагаю, чтонет.Но тогда как мне этого добиться?

Сейчас сообщение просто отправляется в комнату, в которую был добавлен бот, и я не вижу ничего на DM в документах по обмену сообщениями .

В настоящее время вы можете очень легко добиться этого в Slack, настроив так называемого пользователя бота и используя его chat.postMessage, но я бы хотел сделать это вВместо этого в чате Hangouts.

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 голосов
/ 12 июня 2018

На данный момент вам понадобится их Space ID или URL-адрес веб-крючка для того, чтобы лично DM отправлять пользователю информацию о том, используете ли вы веб-крючок (как вы это сделали) или REST API.Если у вас нет этого Space ID / Webhook, вы не можете отправить сообщение пользователю.Один из способов получить его - запросить у пользователя spaceID и сохранить его.В любом случае, Google API не дал способ получить другой идентификатор пространства, отличный от текущего, о котором вы говорите.Это означает, что бот может отправлять сообщения только пользователям, с которыми он взаимодействовал в какой-то момент.

Текущее значение идентификатора пространства можно получить из события JSON (событие ['space'] ['name']) и затем использоватьmessages.create для отправки нового сообщения пользователю

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

ИЛИ его можно получить по URL https://chat.google.com/dm/ -> здесь указан пробел <--- </p>

Google не выпустила ни одного способа создания собственного spaceID для конкретного пользователя.

РЕДАКТИРОВАТЬ: Чтобы получить URL-адрес веб-крючка.См. Ниже: enter image description here

, затем скопируйте и вставьте URL-адрес webhook в приведенный выше код.enter image description here

ВНИМАНИЕ: при необходимости этот URL-адрес веб-крючка может быть изготовлен с использованием обычного URL-адреса для чата Google с указанным выше идентификатором пространства и ключом и токеном доступа в этом формате.: https://chat.googleapis.com/v1/spaces/< пробел ID> / messages? Key = A <ключ идет сюда> & token = <токен доступа здесь> Информацию о том, как получить ключ и токен доступа, можно найти в документации, представленной здесь: https://developers.google.com/identity/protocols/OAuth2

...