我对创建 slackbot 非常陌生,希望得到社区的一些帮助!
我正在使用 Python 创建一个 slackbot,每周都会向频道发送一条消息。然后,频道中提到的用户应该能够单击“确认”或“跳过”。 slackbot 服务器当前运行在 kubernetes 上。
我已经能够每周使用 CronTrigger 安排一条消息。但是,我无法听到松动螺栓动作的按钮响应。当我单击该消息时,我收到一条灰色警告,提示“应用程序尚未配置此功能”。
消息如下所示:
[
{
"type": "actions",
"elements": [
{
"type": "button",
"text": {
"type": "plain_text",
"text": "Confirm!",
"emoji": True,
},
"value": "confirm",
"action_id": "actionId-0",
},
{
"type": "button",
"text": {
"type": "plain_text",
"text": "Skip Me!",
"emoji": True,
},
"value": "skip",
"action_id": "actionId-1",
}
],
}
]
在我的应用程序类中,我有一个 Flask_app 正在运行:
app = App()
# Initialize web server and Slack client
client = WebClient(
token=os.environ.get("SLACK_BOT_TOKEN"), proxy=os.environ.get("HTTP_PROXY")
)
flask_app = Flask(__name__)
handler = SlackRequestHandler(app)
@flask_app.route("/slack/events", methods=["POST"])
def slack_events():
return handler.handle(request)
对于每个按钮,我尝试发送一个自定义响应
@app.action("actionId-0")
def button_confirm():
logging.info("hit confirm!")
current_user_id = scheduler.current_contact()
message_block = mybot.get_confirm_message_block(current_user_id)
logging.info("Initializing confirm message....")
try:
client.chat_postMessage(
channel=os.environ.get("SLACK_CHANNEL"),
blocks=message_block,
)
logging.info(f"Sending blocks {message_block}...")
except SlackApiError as e:
logging.error("Error confirming message: {}".format(e))
pass
我不确定我做错了什么,非常感谢任何帮助调试。我仍在尽力了解一切是如何运作的:)
谢谢
我尝试在没有 Flask 应用程序的情况下运行,但没有成功。我查看了一堆 api 文档和在线资源,但我觉得我错过了一些东西。