#python #python-3.x #slack-api
#python #python-3.x #slack-api
Вопрос:
Я создал приложение slack. Я могу читать и отвечать на команды с косой чертой. Однако приложение не может читать сообщения. Когда я выполняю команду с косой чертой, я вижу событие веб-сервера, подобное этому:
127.0.0.1 - - [19/Jan/2021 13:11:07] "POST /slack/events HTTP/1.1" 200 -
Однако, когда в чат вводится текстовое сообщение, на моем веб-сервере нет журнала. Я считаю, что сообщение slack должно инициировать событие, которое отправляет данные в мой API. Примечание: я использую event API.
Я использую Bolt для slack.
Я предполагаю, что разрешения для этого указаны в настройках подписки на события в разделе Подписка на события бота. В этом случае я только включил app_home_opened
.
Существует опция для channels:read
и channels:history
. Они выделены жирным шрифтом и не могут быть добавлены. Я предполагаю, что это означает, что они включены по умолчанию.
Вот упрощенное приложение, которое отвечает /list
, но не отвечает на hello
:
import os
from slack_bolt import App
# Initializes the app
app = App(
token=os.environ.get("SLACK_BOT_TOKEN"),
signing_secret=os.environ.get("SLACK_SIGNING_SECRET")
)
# Respond to hello
@app.message("hello")
def say_hello(message, say):
say("hi")
# List all users
@app.command("/list")
def list_users(ack, say, command):
ack()
say("list users")
# Start your app
if __name__ == "__main__":
app.start(port=int(os.environ.get("PORT", 3000)))
Я считаю, что channels:history
это разрешение, которое мне нужно для просмотра содержимого чата. Почему я не могу читать сообщения и отвечать на них?
Это документация, на которую я пытаюсь ссылаться для API событий.
Ответ №1:
Мне не хватало сообщения. разрешение каналов в настройках приложения> Подписки на события> Подписать бота на события.
Комментарии:
1. Если это частный канал, подпишитесь на получение событий «message.groups» api.slack.com/events/message.groups что требовало api.slack.com/scopes/groups:history разрешение