Google Hangouts Чат бот для отправки DM через входящий webhook?
Можно ли настроить этого простого бота, используя входящий веб-крючок, но отправить сообщение в виде DM (а не @mention) конкретному пользователю (-ям)?
Я думаю, нет. Но тогда как мне этого добиться?
Прямо сейчас, сообщение просто отправляется в комнату, в которой был добавлен бот, и я не вижу ничего на DM в документации по обмену сообщениями.
В настоящее время вы можете достичь этого очень легко в Slack, настроив так называемого пользователя бота и используя егоchat.postMessage
но я бы хотел сделать это в чате Google 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 ответ
На данный момент вам понадобится их Space ID или URL-адрес веб-крючка для того, чтобы DM лично отправлял пользователю информацию о том, используете ли вы веб-крючок (как вы это сделали) или REST API. Если у вас нет этого Space ID/Webhook, вы не можете отправить сообщение пользователю. Один из способов получить его - запросить у пользователя spaceID и сохранить его. В любом случае, Google API не предоставил способ получить другой идентификатор пространства, отличный от текущего, о котором вы говорите. Это означает, что бот может сообщать только пользователям, с которыми он взаимодействовал в какой-то момент.
Текущее значение идентификатора пространства можно получить из события JSON (event['space']['name']), а затем с помощью messages.create отправить новое сообщение пользователю.
service.spaces().messages().create( parent = spaceName, body = response).execute()
ИЛИ его можно получить по https://chat.google.com/dm/ -> идентификатор пробела здесь <---
Google не выпустил ни одного способа создания вашего собственного spaceID для конкретного пользователя.
РЕДАКТИРОВАТЬ: Для того, чтобы получить URL-адрес webhook. Увидеть ниже:
затем скопируйте и вставьте URL-адрес webhook в приведенный выше код.
ВНИМАНИЕ. При необходимости этот URL-адрес веб-крючка может быть изготовлен с использованием обычного URL-адреса для чата Google с указанным выше идентификатором пространства, ключом и токеном доступа в следующем формате: https://chat.googleapis.com/v1/spaces/<пробел ID>/messages?key=A<ключ идет сюда> &token=<токен доступа здесь> Для получения информации о том, как получить ключ и токен доступа, ознакомьтесь с приведенной здесь документацией: https://developers.google.com/identity/protocols/OAuth2