0부터 Slack POST API

5291 단어 슬랙slack-apicurl
별로 기사로 할 정도의 일도 아닙니다만.
Slack에게 POSt하는 녀석을 준비할 때 쓸데없이 수고했으므로, 정리해 둡니다.

이전 준비



여러 사람이 있는 작업공간이라면 실수로 #general라든지 흘려버릴 가능성이 있으므로,
전용 작업 공간을 만드는 것도 개미라고 생각합니다.
( 슬랙 작업 공간 만들기 가 참고가 될 것 같습니다)

앱 만들기



htps : // 아피. scck. 코m/ 방문

Start Building 버튼을 클릭


앱 이름과 앱을 사용할 작업 공간을 선택하고 'Create App'을 누릅니다.

Webhook 등록




"Incoming Webhook"을 누르십시오.


'off'를 'on'으로 바꾸고,


페이지 하단의 "Add new Webhook to Workspace"를 누릅니다.


우선 앱을 작업 공간에 설치합니다.
메시지를 게시할 위치를 #general로 설정했습니다.
전용 작업 공간이 아닌 경우는 자신에게 DM으로 해도 좋다고 생각합니다


이것으로 등록이 완료됩니다!
페이지 하단의 curl 명령을 실행하면,

이런 느낌의 메시지가 온다.

<보충>
나는 Windows 환경이지만 위의 curl 명령을 그대로 실행하면,
C:\Users\user>curl -X POST -H 'Content-type: application/json' --data '{"text":"Hello, World!"}' https://hooks.slack.com/services/AAAAAAAAA/AAAAAAAAA/AAAAAAAAAAAAAAAAAAAAAAAA
curl: (6) Could not resolve host: application
invalid_payload

같은 느낌으로 오류가 발생합니다.
이것은 Windows 명령 프롬프트가 단일 따옴표 ( ' )를 잘 처리 할 수 ​​없기 때문에 발생하는 오류입니다. (나는 원인을 알아차리는 데 10분이 걸렸다)
나는 WSL로 실행했지만 Windows에서 실행하고 싶다면 위의 curl 명령을
curl -X POST -H "Content-type: application/json" --data "{'text':'TEXT'}" https://hooks.slack.com/services/AAAAAAAAA/AAAAAAAAA/AAAAAAAAAAAAAAAAAAAAAAAA

로 바꾸십시오.

Linux 명령어



일일이 curl 하는 것이 귀찮기 때문에 /usr/local/bin/slacknotify 에 이하와 같이 했습니다.
#!/bin/bash

curl -X POST -H "Content-type: application/json" --data '{"text":"Message from VPS : '"$@"'"}' "https://hooks.slack.com/services/AAAAAAAAA/AAAAAAAAA/AAAAAAAAAAAAAAAAAAAAAAAA" -kLso /dev/null

이제 slacknotify Message to Slack 같은 느낌으로 Slack에게 메시지를 보낼 수 있습니다.
저는 처리 완료시의 통지나 앱의 피드백·에러 로그 등에 사용하고 있습니다.

파이썬에서 사용한다면 다음과 같습니다.
import requests

def feedback(message):
    headers = {
        'Content-type': 'application/json'
    }
    data = '{"text":"{}"}'.format(message)
    response = requests.post('https://hooks.slack.com/services/AAAAAAAAA/AAAAAAAAA/AAAAAAAAAAAAAAAAAAAAAAAA', headers=headers, data=data)

좋은 웹페이지 즐겨찾기