为什么我无法使用 Slack Bolt 库阅读聊天消息?

问题描述

我创建了一个 Slack 应用程序。我能够阅读和响应斜杠命令。但是,应用程序无法读取消息。当我发出斜杠命令时,我会看到这样的 Web 服务器事件:

127.0.0.1 - - [19/Jan/2021 13:11:07] "POST /slack/events HTTP/1.1" 200 -

但是,当在聊天中输入短信时,我的网络服务器上没有登录。我相信一条 slack 消息应该触发一个将数据发送到我的 API 的事件。注意:我使用的是事件 API。

我正在使用 Bolt for slack

我假设此权限位于订阅机器人事件下的事件订阅设置中。在这种情况下,我只启用了 app_home_opened

channels:readchannels: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 是我查看聊天内容所需的权限。为什么我无法阅读和回复消息?

This is the documentation I'm trying to refer to for the events API.

解决方法

我在“应用程序设置”>“事件订阅”>“订阅机器人事件”下缺少 message.channels 权限。