텔레그램봇을 만들기 위해서는 위선 봇아부지(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={메세지}
'개발팁' 카테고리의 다른 글
자바스크립트 라이브러리 underscore.js (0) | 2020.08.27 |
---|---|
자바스크립트 배열 자료구조 다루기 (0) | 2020.07.30 |
자바스크립트 javascript 로 string.format 함수 만들기 (1) | 2020.03.03 |
자바스크립트 (vue.js) 다이나믹 고정레이어 구현하기 (0) | 2020.02.16 |
[C#] Winform / WPF ToggleButton 토글버튼 (0) | 2019.03.28 |