僵尸机器人允许任何用户在任何渠道上发布的权限

时间:2019-08-12 19:39:18

标签: python slack slack-api slash slack-commands

我在Slack上创建了一个斜杠命令,如果我在任何通道上执行斜杠命令都可以正常工作。我不知道是否存在使用斜杠命令any user可以在any channel上发布权限的权限。

有没有一种方法可以让任何用户在频道中的任何地方发布?

enter image description here

基本上,我想将*传递给Post to选项,以便它们不仅限于私有slackbot组。

已编辑:

enter image description here

1 个答案:

答案 0 :(得分:1)

您的应用无需任何其他权限即可在任何频道中回复用户的斜线命令。

关于响应用户执行的斜杠命令,有两种方法发布到频道中:

  • 在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