[컴] Telegram WebHook 사용하기

 웹훅 / 텔레 / 텔레그램 웹훅 설정 / 만들기 / 사용법 / 텔레봇 / 텔레그램 봇

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 등록 절차

  1. Telegram bot 만들기
  2. https POST request 가 가능한 webhook 서버
  3. 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

  1. 쿠...sal: [웹] 텔레그램 Bot 이용하기
  2. Bot Code Examples, 여러 언어로 된 telegram library 들을 찾을 수 있다.  

 

 

댓글 없음:

댓글 쓰기