-
[Django] webhook을 사용하여 잔디(JANDI)에 알림 보내기Web/Django 2020. 8. 18. 23:45
장고로 만든 웹사이트에서 새로운 게시물이 등록될 때마다 잔디에 알람이 가게 한 내용이다.
잔디 커넥트에 이미 Webhook 서비스가 있기 때문에 어렵지 않다.
잔디 우측에 플러그처럼 생긴 버튼을 클릭하면 아래처럼 잔디 커넥트 서비스들을 확인할 수 있다.
여기서 Webhook 수신 (Incoming Webhook)을 보고 '연동 항목 추가하기'를 누르면 아래와 같은 창이 뜬다.
여기서 Webhook URL이 정보를 보낼 주소다. 그리고 그 아래에 알림을 보내고 싶은 잔디의 토픽을 선택하고 설정을 저장하면 된다.
이제 잔디에서의 설정은 다 끝나고 장고에서 설정을 하겠다.
#views.py url = "http://" + request.get_host() + reverse('detail', args=[post.pk]) payload = '{"body":"New Post has been posted.","connectColor":"#6C639C","connectInfo":[{"title":"' + title + '","imageUrl":"' + url + '"}]}' headers = {'Accept': 'application/vnd.tosslab.jandi-v2+json', 'Content-Type': 'application/json'} r = requests.post("https://wh.jandi.com/connect-api/webhook/20949533/f0950aa5be2692b72ba34e8003e2b2f1", data=payload.encode('utf-8'), headers=headers) return redirect('detail', pk=post.pk)
여기서 post.pk, title, url 같은 값들은 내가 같은 함수 내에서 지정해준 값이다.
저 값들을 이용해서 내가 알림으로 보이고 싶은 내용들을 넣어주었다.
알림의 내용들은 payload에 저장했고 headers에는 request에서의 Accept와 Content-Type을 저장해주었다.
그래서 requests.post를 통해서 위에 webhook url에 data=payload, header=headers를 parameter로 주어서 정보를 잔디에 보내주었다.
알림으로 받을 내용에 한국어가 있으면 data에 encode('utf-8')을 넣어주면 된다.
아 그리고 import requests 를 잊지 말자 !
그래서 해당 함수를 호출하면 잔디에 알림이 가는 것을 확인할 수 있다.
'Web > Django' 카테고리의 다른 글
[Django] Django Channels 배포 서버에서 사용하기 (Apache) (0) 2020.09.06 [Django] Python 3.5에서 Python 3.7로 업그레이드 하기(mod_wsgi업그레이드) (Ubuntu) (0) 2020.08.09 [Django] Google 계정으로 로그인하기 (로컬 서버 + 실제 서버) (0) 2020.08.05 [Django] Django와 MySQL 연동하기 (0) 2020.07.09 [Django] Ubuntu에서 Django + Apache2 연결하기 (0) 2020.07.07