代码之家  ›  专栏  ›  技术社区  ›  user2607110

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

  •  0
  • user2607110  · 技术社区  · 8 年前

    我编写了一个简单的Slack斜杠命令,它只会重复用户所说的内容。例如,如果您键入“/说测试!”机器人会回复“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)
    

    我有没有做错什么,或者只是我选择编写这段代码的方法阻止发布斜杠命令的人可见?

    1 回复  |  直到 8 年前
        1
  •  1
  •   Erik Kalkoken    8 年前

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

    Responding to a slash command 在Slack API文档中。

    推荐文章