Slack Slash Command 删除执行斜杠命令的人的消息
Slack Slash Command removes the message of the person who did the slash command
我写了一个简单的 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)
我有什么地方做错了吗,或者只是我选择编写此代码的方法阻止了发布斜杠命令的人被看到?
我对 Python 知之甚少,但在我看来,您正在使用 API 方法 chat.postMessage 发回消息。然而,这不是您应该如何回复斜线命令。相反,您应该使用 JSON 格式的消息直接回复来自 Slack 的 POST 请求。那么你也可以将属性response_type
设置为in_channel
。这将产生初始命令和响应都对频道中的所有用户可见的效果。
另请参阅 Slack API 文档中的 Responding to a slash command。
我写了一个简单的 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)
我有什么地方做错了吗,或者只是我选择编写此代码的方法阻止了发布斜杠命令的人被看到?
我对 Python 知之甚少,但在我看来,您正在使用 API 方法 chat.postMessage 发回消息。然而,这不是您应该如何回复斜线命令。相反,您应该使用 JSON 格式的消息直接回复来自 Slack 的 POST 请求。那么你也可以将属性response_type
设置为in_channel
。这将产生初始命令和响应都对频道中的所有用户可见的效果。
另请参阅 Slack API 文档中的 Responding to a slash command。