Почему я не могу читать сообщения чата с помощью библиотеки Slack Bolt?

#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 разрешение