Python
slack bot 에 메세지 던지기
꼬꼬마코더
2024. 4. 6. 14:47
728x90
slack bot을 만들었으면 이제 bot이 말해야한다. 그러려면 '내'가 slack bot(slack webhook url)에게 메세지를 던져야 한다.
cmd를 켜고 다음 curl 명령어를 던진다. slack webhook url을 따로 넣어준다.
curl -X POST -H 'Content-type: application/json' --data '{"text":"Hello, World!"}' https://hooks.slack.com/services/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
나의 경우엔 위 문구가 실패해서 다음과 같이 백슬래쉬\ 넣어서 성공했다.
curl -X POST -H "Content-type:application/json" --data "{\"text\":\"A New Program Has Just Been Posted!!!\"}" https://hooks.slack.com/services/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
cmd에서 curl 명령어를 전송하고 ok 성공 메세지가 뜨면 내가 만든 slackbot 이 메세지를 보낸다.
이번엔 curl이 아닌 python으로 명령어를 던져보자.
import requests
import json
def hello():
slack_hooks_url = "https://hooks.slack.com/services/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"
payload = {"text":"Hello, World!"}
headers = {'Content-type': 'application/json'}
response = requests.post(slack_hooks_url, data=json.dumps(payload), headers=headers)
print(response)
hello()
다음과 같이 슬랙에서 메세지가 잘 뜬다.
이번엔 모듈로 만들어서 실행시켜보자.
slackbot.ipynb 과 slacktest.py 를 2개를 만들어서 slackbot.ipynb에서 slacktest.py를 실행시켜보자.
slackbot.ipynb
pip install slack_sdk
# slacktest.py
import sys
# Enable debug logging
import logging
logging.basicConfig(level=logging.DEBUG)
# Verify it works
from slack_sdk import WebClient
client = WebClient()
api_response = client.api_test()
import slacktest
slacktest.hello()
slacktest.py
import requests
import json
def hello():
slack_hooks_url = "https://hooks.slack.com/services/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"
payload = {"text":"오늘은 토요일입니다"}
headers = {'Content-type': 'application/json'}
response = requests.post(slack_hooks_url, data=json.dumps(payload), headers=headers)
print(response)
이것도 잘 실행된다.