웹훅 / 텔레 / 텔레그램 웹훅 설정 / 만들기 / 사용법 / 텔레봇 / 텔레그램 봇
Telegram WebHook 사용하기
WebHook 은 Telegram 의 채팅의 정보가 생길때 서버로 그 내용을 가져오고 싶을때 쓰면된다.
Telegram ---> Server
telegram webhook 정보
- SSL/TLS 만 사용 가능하다.
- TLS1.2 이상을 사용한다.
- 도메인을 가진 서버가 필요하다.
- self-signed certificate 을 사용한다면, IP 로도 가능할 수 있다.?
- 443, 80, 88 and 8443 port 를 제공한다.
- 대체로 telegram push 는
149.154.167.197-233
범위의 ip 를 사용한다. 이것은 후에 변경될 수 있으니, 여기(https://core.telegram.org/bots/webhooks#an-open-port) 를 check 하자.
webhook 등록 절차
- Telegram bot 만들기
- https POST request 가 가능한 webhook 서버
- telegram bot 에 webhook 등록
Telegram bot 만들기
bot 만들기는 아래 링크를 참고하자.
https POST request 가 가능한 webhook 서버
ngrok 사용하기
ngrok 를 이용해서 local server 를 https 로 제공할 수 있다. test 용으로는 충분하다.
c:\> ngrok.exe http 8003
ngrok by @inconshreveable (Ctrl+C to quit)
Session Status online
Session Expires 7 hours, 59 minutes
Version 2.3.35
Region United States (us)
Web Interface http://127.0.0.1:4040
Forwarding http://ddceffa6fd3f.ngrok.io -> http://localhost:8003
Forwarding https://ddceffa6fd3f.ngrok.io -> http://localhost:8003
Connections ttl opn rt1 rt5 p50 p90
0 0 0.00 0.00 0.00 0.00
인증서(certificate) 를 이용해서 직접 https 서버 설치
domain 을 가지고 있다면 local 에 https 서버를 setting 해서 사용할 수 있다. 인증서(certificate) 는 Let’s Encrypt 를 사용하면 된다.
telegram bot 에 webhook 등록
$ curl -F "url=https://mytele.mytest.com/test/namh-tele" https://api.telegram.org/bot732228159:AAES63zd90bh3pjtVYFNHzBKs2222342342/setWebhook
{"ok":true,"result":true,"description":"Webhook was set"}
curl https://api.telegram.org/bot<token>/setWebhook?url=https://mytele.mytest.com/test/namh-tele
식으로 등록을 해도 된다.
webhook 등록 초기화
이전의 webhook 을 clear 하기 위해서는 아래처럼 해주면 된다.
$ curl https://api.telegram.org/bot<token>/setWebhook?url=
custom keyboard 사용
custom keyboard 를 보여주는 방법은 아래링크를 참고하자.
test
bot 에서 테스트
telegram 에 있는 Bot 과의 채팅방에서 message 를 날려보자. 그러면 아까 등록한 webhook 으로 telegram 이 신호를 주게 된다. 참고로 필자의 경우 등록하고 5분정도 후 부터 webhook 으로 message 가 들어오기 시작했다.
curl 로 webhook 을 TEST
아래 page 에서 curl 을 확인할 수 있다. 아래 link 에서 나온 curl 의 data 처럼 webhook 으로 POST message 가 온다.
curl --tlsv1.2 -v -k -X POST -H "Content-Type: application/json" -H "Cache-Control: no-cache" -d '{
"update_id":10000,
"message":{
"date":1441645532,
"chat":{
"last_name":"Test Lastname",
"id":1111111,
"first_name":"Test",
"username":"Test"
},
"message_id":1165,
"from":{
"last_name":"Test Lastname",
"id":1111111,
"first_name":"Test",
"username":"Test"
},
"text":"/start"
}
}' "https://mytele.mytest.com/test/namh-tele"
See Also
- 쿠...sal: [웹] 텔레그램 Bot 이용하기
- Bot Code Examples, 여러 언어로 된 telegram library 들을 찾을 수 있다.
댓글 없음:
댓글 쓰기