松弛斜杠命令将删除执行斜杠命令的人员的消息



我写了一个简单的Slack Slash 命令,它只会重复这个人说的话。例如,如果您键入"/say Test!",机器人将回复"Test!"。

但是,每次执行此操作时,执行斜杠命令的人员的消息都不会发布到频道,因此您无法看到谁提示了该消息。

例如,如果您键入"/say Test!",则您的消息永远不会发布在频道中,但机器人的消息会发布。我希望你能在机器人回复之前看到那个人的消息。这是我的代码。

from flask import Flask, request, Response
import os
from slackclient import SlackClient
SLACK_DEV_TOKEN = <TOKEN>  # Put your API dev token here
slack_client = SlackClient(SLACK_DEV_TOKEN)
app = Flask (__name__)
def send_message(channel_id, message):
slack_client.api_call('chat.postMessage',
channel=channel_id,
text=message,
username='Bot',
icon_emoji=':Anguished:')


@app.route('/say', methods=['POST'])
def say():
channel_id = request.form.get('channel_id')
input_text = request.form.get('text').lower()
#return "Test"
send_message(channel_id,input_text)
return Response(),200

if __name__ == '__main__':
port = int(os.environ.get('PORT',5000))
app.run(host='0.0.0.0',port=port,debug=True)

我做错了什么,还是只是我选择编写此代码的方法阻止了发布斜杠命令的人可见?

我对 Pyhthon 了解不多,但在我看来,您正在使用 API 方法 chat.postMessage 发送消息。但是,这不是您应该回复斜杠命令的方式。相反,您应该使用JSON格式的消息直接向Slack的POST请求发送回复。然后,您还可以将属性response_type设置为in_channel。这将产生初始命令和响应对通道中的所有用户可见的效果。

另请参阅 Slack API 文档中的响应斜杠命令。

最新更新