2017-07-03 119 views
0

我編寫了一個簡單的Slack Slash命令,該命令將重複該人員說的內容。例如,如果您鍵入「/說測試!」機器人將回復「測試!」。Slack Slash Command刪除執行斜槓命令的人的消息

但是,每次執行此操作時,執行斜槓命令的人的消息都不會發布到該通道,因此您無法查看提示消息的人。

例如,如果輸入「/ say Test!」你的消息永遠不會發布在頻道中,但是Bot的是。如果您能在bot回覆之前看到該人的消息,我寧願選擇。這是我的代碼。

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

我對Pyhthon瞭解不多,但是在我看來,你似乎在用API方法chat.postMessage發回消息。然而,這不是你應該如何回覆斜線命令。相反,您應該使用JSON格式的消息直接從Slack發送POST請求。然後您還可以將物業response_type設置爲in_channel。這將產生初始命令和響應對通道中的所有用戶都可見的效果。

另請參閱Slack API文檔中的Responding to a slash command

+0

我可能只是在迴應中反映了斜槓命令,謝謝! 我已經使用了一些允許留言的應用程序。 Urbandictionary留下信息,Giphy似乎編輯人員信息以將gif附加到它(http://i.imgur.com/a5fQSmh.png) 您是否碰巧知道如何完成這樣的事情? – user2607110

+0

我的歉意,但我誤解了你的問題。請參閱我的新答案,以更好地解決您的問題。 –

+0

非常感謝,這個工作很完美。 – user2607110