python - Slack 机器人允许任何用户在任何 channel 上发帖

标签 python slack slack-api slash slack-commands

我在 Slack 上创建了一个斜杠命令,如果我在任何 channel 上执行它,它都可以正常工作。我无法弄清楚是否有任何用户可以使用斜杠命令在任何 channel 上发帖的权限。

有没有办法让任何用户都可以在 channel 中的任何位置发帖?

enter image description here

基本上,我想将 * 传递给 Post to 选项,这样它们就不会仅限于私有(private) slackbot 组。

编辑:

enter image description here

最佳答案

您的应用不需要任何额外的权限来回复任何 channel 中用户的斜线命令。

有两种方法可以发布到 channel 作为对用户执行的斜杠命令的响应:

  • 3秒内直接响应斜杠请求。例如如果您使用 Flask,则通过在 @route 函数中调用 return 来响应请求

  • 在 30 秒内向您找到斜杠命令请求的 request_url 发送请求

您显示的“发布到”属性与斜杠命令无关。它用于传入 webhooks,非 Slack 应用程序使用它向 Slack 发送消息。

代码

以下是使用 Flask 进行两种类型响应的示例:

from flask import Flask, json, request
import requests

app = Flask(__name__) #create the Flask app

@app.route('/slash', methods=['POST'])
def slash_response_direct():                
    """Direct response"""
    message = {        
        "text": "Hi there"
    }
    return json.jsonify(message)


#@app.route('/slash', methods=['POST'])
def slash_response_indirect():
    """responding to slash command via response URL"""

    response_url = request.form["response_url"]    
    message = {        
        "text": "Hi"
    }
    res = requests.post(response_url, json=message)

    return ""


if __name__ == '__main__':
    app.run(debug=True, port=8000) #run app in debug mode on port 8000

关于python - Slack 机器人允许任何用户在任何 channel 上发帖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57467320/

相关文章:

slack - 无法删除通过传入 Webhook 发送的消息

python - 将protobuf编译为python,cmake命令

go - 在 Go 中创建具有未导出子结构的结构实例

python - urllib 模块错误!属性错误 : 'module' object has no attribute 'request'

slack-api - 附件字段的最大长度

ios - iOS 应用程序在后台进行网络请求

ubuntu - ubuntu 16.04 右上角缺少 Slack 图标

javascript - Slack Botkit - 如何从 'reaction_added' 事件中获取消息的内容

python - 如何将掩码应用于维持形状和检索值的 numpy 数组?

python - Python 3 中的 Web 网关接口(interface)