Programming

[Telegram] Bot Token 및 Chat Id 얻기

steloflute 2020. 1. 11. 05:18

출처: https://gabrielkim.tistory.com/entry/Telegram-Bot-Token-%EB%B0%8F-Chat-Id-%EC%96%BB%EA%B8%B0

 

텔레그램을 이용하여 홈 서버나 NAS에서 메시지를 받을 수 있는데 이 때 필요한 것이 Bot Token 및 Chat Id 이다. Telegram API 를 이용하여 Bot Token(발신인) 이 Chat Id(수신인) 으로 메시지를 보내는 것이다.

 

우선 메시지봇을 만들기 위해 웹브라우저에서 Telegram Web-version(https://web.telegram.org) 으로 접속 후 botfather 를 검색한다.

@BotFather 를 선택하면 우측 대화창 부분에 아래와 같이 대화를 시작할 수 있는 창이 보이는데 여기서 START 를 눌러 대화를 시작한다. 아래와 같이 사용할 수 있는 명령어들이 쭉 나열된다.

대화창에서 /newbot 를 입력하여 새로운 봇을 만든다. (위에 그림에서는 잘못 입력했다. /newbots 가 아니라 /newbot 이다.)

이제 봇의 name 과 username 을 입력하게 되는데, 이때 name 은 말 그대로 봇을 부르는 이름으로 내가 알아보기 쉽게 지으면 된다. (나중에 /setname 명령으로 수정할 수도 있다.) username 은 일종의 id 와 같은 개념으로 반드시 bot 으로 끝나야하며(TetrisBot or tetris_bot), 기존에 텔레그램에 등록되어있는 username 은 사용할 수 없다. 다시말해 name 은 중복된 것이어도 상관없지만 username 은 중복될 수 없다.

위의 예에서는 'happykids test' 가 name 이고, username 은 'happykidstestbot' 이다. 다 되었다는 메시지와 함께 방금 만들어진 'happykids test' 봇에게 메시지를 보낼 주소(t.me/happykidstestbot)가 표시가 되며 이 봇에 대한 설명이라던가 프로필 사진이라던가 하는 것들을 추가할 수 있다는 등의 블라블라 ... 가 나오고 그 다음 우리가 그토록 알고 싶어 하던 token (802131로 시작되는 문자열) 이 보여진다. token 은 지금 바로 메모장에 옮겨 저장해놓아도 되고, 혹시 잃어버렸다 하더라도 BotFather 와의 대화창에서 /mybots 명령어를 통해 내가 만든 봇에 대한 정보를 다시 얻을 수 있다.

 

자, 이제 메시지의 발신인이 될 봇을 만들고 봇의 Token 값을 알았으니, 메시지의 수신인이 될 나의 Chat Id 를 알아보도록 하겠다.

브라우저 주소 입력창에 https://api.telegram.org/bot봇Token값/getUpdates 를 입력한다.

https://api.telegram.org/bot802131984:AAHH6QL4TmvYwaUhgZheTNg9vteSVzeTKPQ/getUpdates

위와 같이 보일 것이다.

앞서 봇을 만들었던 BotFather 와의 대화창에서 t.me/happykidstestbot 를 누르면 아래와 같은 대화창이 뜨고 여기서 START 를 눌러 happykids test 봇과의 대화를 시작한다.

아무 메시지나 입력.

봇 token 값을 이용해 들어갔던 api.telegram.org... 의 웹 브라우저 창을 새로 고침하면 다음과 같이 나오는데,

{"ok":true,"result":[{"update_id":178332702,
"message":{"message_id":1,"from":{"id":879500000,"is_bot":false,"first_name"

여기서 "from":{"id":879500000, 부분의 8795로 시작하는 9자리의 숫자가 나의 Chat Id 가 된다.

 

자, 이제 지금껏 알아본 API Token 값과 Chat Id 를 이용하여 메시지를 보내보자.

메시지를 보내는 방법은 웹 브라우저 주소창에 다음과 같이 입력하면된다.

https://api.telegram.org/bot[봇토큰]/sendmessage?chat_id=[챗아이디]&text=[보낼메시지]

ex) https://api.telegram.org/bot802131984:AAHH6QL4TmvYwaUhgZheTNg9vteSVzeTKPQ/sendmessage?chat_id=879500000&text=hello

그러면 아래와 같이 'happykids test' 봇이 나에게 hello 하고 메시지를 보낸다.



출처: https://gabrielkim.tistory.com/entry/Telegram-Bot-Token-및-Chat-Id-얻기 [행복둥이들의 이야기]