Да, оно может.
У меня была та же проблема, оказалось, что я включил какой-то код, который не понял, и этот код мешал ответу. Я написал об этом по электронной почте, и они поставили меня на место.
Проблемный код был таким:
if event["type"] == "message" and not "subtype" in event:
user_id, message = parse_direct_mention(event["text"])
if user_id == self_id:
return message, event["channel"]
Полезный ответ от slack:
Условие ниже — это то, что мешает вашему боту прослушивать сообщения бота:
if event["type"] == "message" and not "subtype" in event:
Когда сообщение отправляется ботом, оно будет иметь подтип, поэтому это означает, что ваша логика игнорирует любое сообщение бота. Это полезно, потому что не позволяет вашему боту отвечать на собственные сообщения, что может создать бесконечный цикл.
Вам нужно будет изменить это условие, чтобы ваш бот по-прежнему «игнорировал» свои собственные сообщения, но обрабатывал сообщения от других ботов. Вы можете сделать это, например, просмотрев идентификатор бота или идентификатор пользователя и отбросив эти сообщения, но не сообщения от других ботов.
В моем случае я хочу, чтобы бот всегда отвечал людям, а боты — только в том случае, если им доверяют, поэтому я сделал следующее:
from_user = "subtype" not in event
from_friend_bot = (event["subtype"] == "bot_message") and (event['username'] == f'{ping_source}')
if from_user or from_friend_bot:
user_id, message = parse_direct_mention(event["text"])
if user_id == self_id:
return message, event["channel"]
person
MatrixManAtYrService
schedule
05.04.2019