Slack SocketModeClient — отвечать только на сообщения, в которых упоминается приложение в каналахPython

Программы на Python
Anonymous
Slack SocketModeClient — отвечать только на сообщения, в которых упоминается приложение в каналах

Сообщение Anonymous »

Я пытаюсь создать бота Slack с использованием SocketModeClient, который будет отвечать только на сообщения в тех каналах, где он явно упомянут. Мой первоначальный мыслительный процесс заключался в следующем:

Код: Выделить всё

    socket_mode_client = SocketModeClient(
# This app-level token will be used only for establishing a connection
app_token=os.environ['APP_TOKEN'],  # xapp-A111-222-xyz
# You will be using this WebClient for performing Web API calls in listeners
web_client=WebClient(token=os.environ['TOKEN']),  # xoxb-111-222-xyz
)

def _process_websocket_message(client: SocketModeClient, request: SocketModeRequest):
# Acknowledge the request
response = SocketModeResponse(envelope_id=request.envelope_id)
client.send_socket_mode_response(response)

if request.type != 'events_api':
return

# ignore duplicated requests
if request.retry_attempt is not None and request.retry_attempt > 0:
return

payload_event = request.payload['event']

if payload_event['type'] == 'app_mention' and '' in payload_event['']:
# respond
Идея состоит в том, чтобы проверить текст сообщения на наличие идентификатора пользователя человека и ответить только в том случае, если он там есть. Однако я не совсем уверен, как получить идентификатор пользователя приложения. Я знаю, что с помощью метода user_profile_get() WebClient я могу получить идентификатор бота и идентификатор приложения, но эти идентификаторы не присутствуют в тексте при упоминании приложения.
Я тоже готов попробовать другой подход.

Подробнее здесь: https://stackoverflow.com/questions/789 ... n-channels

Вернуться в «Python»