개발팁2020. 3. 20. 19:23

 

텔레그램봇을 만들기 위해서는 위선 봇아부지(BotFather) 에게 토큰을 만들어야 한다.

 

 

1. 봇 Token ID 생성하기

 

 

 

우선 텔레그렘에서 BotFather 와 대화를 시작해야 한다.

모든 요청은 BotFather 와의 채팅방에서 이뤄진다고 보면 된다.

 

텔레그램의 검색창에 botfather 를 치고, 맨위의 BotFather 를 클릭한다.

 

 

채팅창에 /start 라고 치면, 도움말이 나온다.

 

 

 

이제 나만의 봇을 만들어보자.

 

/newbot 이라고 치면, 봇의 이름을 입력하라고 나온다.

봇의 이름은 한글로 치던 어떤걸 치던 상관이 없다.

 

그리고 나면, bot의 username 을 입력하라고 하는데, 이 username 은, 텔레그램 시스템 안에서 중복되지 않는 이름이어야 한다. 그리고, 뒤에는 bot 로 끝나야 한다.

 

 

 

 

username 입력이 끝나면, 봇이 생성되고, 본의 token 값이 나온다.

이 token 값은 잘 간직하고 있다가, 나중에 메세지를 보낼때 사용하게 된다.

 

한사람당 하나의 봇만 만들 수 있는게 아니라, 여러개도 만들 수 있다. (/newbot)

 

 

 

2. 대화방 만들고 ChatID 가져오기

 

 

이제 봇과 대화를 시작해볼것이다.

 

아까 생성했던 본의 이름을 앞에 @ 를 붙여서 검색해보자.

 

 

 

 

클릭하고 들어가서 시작을 누르면, 봇과의 채팅이 시작된 것이다.

시작을 누르고, 아무 메세지나 적어보자.

 

그러면, 이 대화방의 ChatID 가 생성이 된다.

 

이제, ChatID 를 가져오는 방법은 텔레그램 API 를 이용할것이다.

 

웹브라우저 주소창에 아까 받은 token 값을 이용해서, 아래와 같이 입력한다.

 

 

https://api.telegram.org/bot{토큰값}/getUpdates

 

{토큰값} 은 실제 token 값으로 입력해야 합니다.

api.telegram.org/bot1234?????:ABCD??????????????????????/getUpdates

 

 

chat id 값이 나왔으니, 이제 텔레그램 API 를 통해서 바로 채팅방에 메세지를 보낼 수 있게 됐다.

(chatid 는 양수 또는 음수로 나온다)

 

https://api.telegram.org/bot{토큰값}/sendMessage?chat_id={ChatID}&text={메세지}

 

{ChatID} 는 실제 chatid 를 입력해야 합니다.

sendMessage?chat_id=1234????&text=테스트

sendMessage?chat_id=-1234????&text=테스트 (음수일때)

 

 

웹브라우저 주소창에 위의 내용을 넣어보자. 결과는 ok: true 라고 해서 성공적으로 메세지를 전송했다.

 

 

 

텔레그램 채팅창에 메세지가 도착한것을 확인할 수 있다.

 

 

 

 

3. 봇이 있는 그룹채팅방 만들기

 

 

위 2번에서는 봇과 나 단 둘만 있는 채팅방이다.

즉 token / chatid 를 통해 메세지를 보내면, 나만 볼 수 있는 채팅방인것이다.

동일한 봇 채팅방을 여러명이 있는 채팅방을 만드려면 그룹(Group) 이라는 단체 채팅방으로 통해 생성가능하다.

 

 

 

 

텔레그램의 메뉴에 가면, [그룹 만들기] 라는 메뉴가 보인다. 이것이 단체 채팅방을 만드는 기능이다.

 

 

 

 

여기서 그룹에 추가하려는 친구를 선택하는데, 선택하지 말고, 검색창에

위에서 만든 봇의 이름을 @ 를 먼저쓰고 입력해보자.

첫번째 나오는것이 위에서 만들었던 봇이다. 이를 선택하면, 그룹이 생성된다.

 

 

 

그룹이 만들어졌지만, 아직까지는 나와 봇 2명밖에 없다.

 

상단의 그룹이름을 클릭하면, 단체채팅방에 친구를 초대할 수 있다.

 

 

 

 

참가자 추가 버튼을 눌러 친구를 초대하면 된다.

 

이제 단체 채팅방에서, 메세지를 아무거나 입력하고 나서,

 

[2. 대화방 만들고 ChatID 가져오기] 에서 했던것처럼, getUpdates 로 단체채팅방의 chat_id 를 가져올 수 있고, sendMessage 로 메세지를 보낼 수 도 있다.

 

 

https://api.telegram.org/bot{토큰값}/getUpdates

 

https://api.telegram.org/bot{토큰값}/sendMessage?chat_id={ChatID}&text={메세지}

 

Posted by 헝개