반응형

이번에는 Slash Commands ( / ) 를 이용하여 요청과 응답을 하는 방법에 대해 알아보겠습니다. 상세한 내용은 Slack api 설명 페이지를 참고하시기 바랍니다.


1. slack api -> Slash Commands >  [Create New Command]

2. Command, Request URL, Short Description, Usage Hint 등을 입력합니다. Request URL은 단순히 테스트를 위해서 http://localhost으로 입력해도 되지만 저는 ngrok으로 생성한 URL을 사용합니다. 그리고 기존에 Direct Message 처리부분과 구분하기 위해 URL+/slash/ 라고 입력했습니다.

3. [Save] 를 누르면 Slash Commands가 생성되었습니다.

Slack 메세지 창에서 입력하면 slash command를 확인 할 수 있습니다.

하지만 오류가 발생합니다.

Python 프로그램에서 응답을 할 수 있도록 수정이 필요합니다. 다음과 같은 Function을 추가합니다.

@app.route('/slash/', methods=['POST'])
def hello_slash():
    query_word = request.form['text']
    user = request.form['user_id']
    ts = ''
    answer = get_answer(query_word, user, ts)

    return make_response(answer, 200, {"content_type": "application/json"})
더보기

Slack API 통신규약

token=gIkuvaNzQIHg97ATvDxqgjtO
&team_id=T0001
&team_domain=example
&enterprise_id=E0001
&enterprise_name=Globular%20Construct%20Inc
&channel_id=C2147483705
&channel_name=test
&user_id=U2147483697
&user_name=Steve
&command=/weather
&text=94070
&response_url=https://hooks.slack.com/commands/1234/5678
&trigger_id=13345224609.738474920.8088930838d88f008e0
&api_app_id=A123456

이제 정상적으로 처리가 됩니다.

반응형