【发布时间】:2021-08-27 19:37:48
【问题描述】:
我正在尝试构建一个基本的 slack 机器人,但该机器人没有接收消息事件。添加了以下范围:“chat:write”
还订阅了事件 message.channels。
我已经配置了 ngrok 服务器。当我从浏览器点击端点时,我收到一条消息说“这些不是您正在寻找的松弛机器人”,这意味着服务器正在运行。但是当我在添加机器人的频道中发布消息时,不会触发 API。你能帮忙吗?
这是我正在使用的代码:
import slack_sdk
import os
from pathlib import Path
from dotenv import load_dotenv
from flask import Flask
from slackeventsapi import SlackEventAdapter
env_path = Path('.') / '.env'
load_dotenv(dotenv_path = env_path)
app = Flask(__name__)
slack_event_adapter = SlackEventAdapter(os.environ['SIGNING_SECRET'],'/slack/events',app)
client = slack_sdk.WebClient(token = os.environ['SLACK_TOKEN'])
# client.chat_postMessage(channel = '#bi-announcements', text = "Hello World! ")
BOT_ID = client.api_call("auth.test")['user_id']
@slack_event_adapter.on('message')
def message(payload):
print(payload)
event = payload.get('event',{})
channel_id = event.get('channel')
user_id = event.get('user')
text = event.get('text')
if BOT_ID != user_id:
client.chat_postMessage(channel= channel_id, text = text)
if __name__ == "__main__":
app.run(debug=True)
以下是松弛配置:
我可以向 slack 发送消息,但无法阅读消息。任何帮助将不胜感激。
【问题讨论】:
-
嗨,您是否邀请您的机器人到您想要捕获事件的频道?
-
您的代码中配置的令牌是您的
xoxp令牌还是您的xoxb令牌?确保您使用的是机器人xoxb令牌。 -
@sandra 是的,我正在使用 xoxb 令牌,但它仍然无法正常工作
-
@SuyashGaur 是的,我已邀请机器人进入我想要捕获事件的频道
-
您能确认您发布消息的频道是“公共”频道吗?
标签: python flask slack slack-api