Вы можете получить все сообщения, опубликованные в рабочем пространстве Slack (в определенных пределах), прослушивая события сообщений через API событий , например, message.channels , чтобы прослушивать все сообщения, опубликованные вобщедоступные каналы.
События сообщений включают полную копию сообщения, поэтому вы можете просто переслать эту копию другому боту, если хотите, например, добавив упоминание @bot и повторно разместив его в том же каналеили отправив прямое сообщение другому боту.
Однако - если другой бот распознает сообщение от вашего бота, во многом зависит от его дизайна.Сообщения от пользователей и ботов обычно выглядят по-разному, и многие боты будут игнорировать сообщения, не принадлежащие пользователю.
Пример сообщения от пользователя:
{
"team": "T1234567",
"text": "hi",
"ts": "1516240585.000208",
"type": "message",
"user": "U12345678"
}
Пример сообщения от бота:
{
"bot_id": "B12345678",
"subtype": "bot_message",
"text": "Hi",
"ts": "1516582987.000123",
"type": "message",
"username": "My Bot"
}
Есть одно исключение.Можно создать пользовательское сообщение с API, которое неотличимо от сообщения, размещенного на клиенте.Они должны быть подхвачены другим ботом, как и любое сообщение.
Вот как:
- Используйте
chat.postMessage
для отправки сообщения - Используйте пользовательский токен (он же Oauth Access Token) вашего пользователя (не бот-токен) в вызове API
- Установите для параметра API
as_user
значение true