개인적으로 챗봇 형태의 토이 프로젝트를 하고 싶을 때는 텔레그램 봇을 이용하는 것만큼 좋은 선택은 없다고 생각합니다. 애초에 카카오톡 봇같은 경우 개인적으로 이용할 수 있는 기능이 물어보는 기능에 대한 답변 정도만 구현 가능하니까요. 그 이후의 영역은 비즈톡 가입을 해야만 하니까요.
네, 그래서 조심스레 토이 프로젝트를 하나 시작하고자 텔레그램 봇 만드는 것부터 해서 시작해보려고 합니다.
1. 텔레그램에서 BotFather를 찾는다.
당연하지만 텔레그램이 설치되어있어야겠죠? PC버전이든 모바일 버전이든 상관은 없지만 PC 버전이 명령어 입력이 훨씬 편할테니 저는 PC 버전을 이용하도록 하겠습니다.
검색창에서 BotFather를 찾습니다. 그리고 '/help' 커맨드로 바로 사용 가능한 명령어를 확인해봅시다.
2. 텔레그램 봇 생성 명령어를 입력한다.
영어로 나오긴 하지만 /newbot 으로 새로운 봇을 만들수 있는건 잘 알것 같습니다. '/newbot'을 입력해봅시다.
/newbot
Alright, a new bot. How are we going to call it? Please choose a name for your bot.
이름을 정해달라고 하는 것 같습니다. 저는
nhj_test_bot 으로 이름을 만들겠습니다.
이렇게 되면 잘 만들어진 것 같습니다. 저 토큰이라는 녀석으로 이 봇을 다룰수 있다고 하는것 같고 안전하고 노출되지 않도록 관리하라고 하네요. 이미지에는 지워져있지만 여러분의 텔레그램 톡에는 남아있을 겁니다.
이렇게 되면 텔레그램 봇 만들기는 끝이 났습니다.
3. 만들어진 텔레그램 봇을 찾아보자.
만든 봇을 검색(search)창에 입력해서 찾아봅시다.
만들어진 봇이 보입니다. 대화를 시작해봅시다. 채팅방을 시작하는 개념입니다.
4. 만들어진 텔레그램 봇으로 간단한 메세지를 보내보자.
이 글에서는 어떤 프로그램 언어와 상관없이 브라우저를 통해 메세지 실습을 해보도록 하죠! 그 다음 텔래그렘 봇 입장에서 사용자가 들어온 정보를 볼 수 있는 방법이 있는데요. 바로 웹 브라우저에 명령어를 전송해주면 됩니다!
https://api.telegram.org/bot[텔레그램봇토큰]/getUpdates
이 [텔레그램봇토큰] 부분에 아까 봇파더가 알려줬던 텔레그램 봇 토큰을 입력한 다음 그걸 브라우저 주소창에 넣고 접속해보세요.
==> 브라우저 접속 결과
{"ok":true,"result":[{"update_id":551101880, "message":{"message_id":2,"from":{"id":388946377,"is_bot":false,"first_name":"void","username":"lie77","language_code":"ko"},"chat":{"id":388946377,"first_name":"void","username":"lie77","type":"private"},"date":1589013352,"text":"gfd"}},{"update_id":551101881, "message":{"message_id":3,"from":{"id":388946377,"is_bot":false,"first_name":"void","username":"lie77","language_code":"ko"},"chat":{"id":388946377,"first_name":"void","username":"lie77","type":"private"},"date":1589013665,"text":"/start","entities":[{"offset":0,"length":6,"type":"bot_command"}]}},{"update_id":551101882, "message":{"message_id":4,"from":{"id":388946377,"is_bot":false,"first_name":"void","username":"lie77","language_code":"ko"},"chat":{"id":388946377,"first_name":"void","username":"lie77","type":"private"},"date":1589013688,"text":"/start","entities":[{"offset":0,"length":6,"type":"bot_command"}]}}]}
저 같은 경우엔 이런식으로 접속자의 히스토리가 쭉 뜨게 됩니다. 여러분 한번만 접속했다면 하나만 나올거에요.
여기서 채팅방 아이디는 바로 id:388946377 부분의 숫자입니다.
여기에 나타난 채팅방 아이디를 통해서 텔레그램 채팅방으로 간단한 메세지를 보내보도록 하겠습니다.
https://api.telegram.org/bot[텔레그램봇 토큰]/sendmessage?chat_id=388946377&text=안녕하세용 저는 텔레그램 봇입니당
위 형식을 브라우저에 넣고 접속해보세요~! 바로 이렇게요
아무 브라우저에 위 주소를 완성시켜서 접속해보세요.
▼▼▼
텔레그램 봇을 통해 메세지가 수신된 모습
▼▼▼
어때요? 간단하죠? 이렇게 텔레그램 봇 파더를 통해 신규 봇을 깜짝할 사이에 만들수 있고, 심지어 웹 브라우저를 통해서 간단한 메세지 또한 순식간에 보내볼 수 있었습니다.
이걸 여러가지 프로그램 언어인 노드(node.js)나 파이썬, 자바, 고, C, 등등으로 웹 브라우저를 통해 명령어를 사용하는 것처럼 봇의 기능을 만들어낼 수 있는 것이죠.
사용자의 채팅방 아이디를 기억해뒀다가 사용자의 특정 명령어 또한 기억하거나 실시간으로 입력 받아서 거기에 맞게 여러가지 응답을 해주는 것이죠.
여기에는 여러가지 추가 기능들을 통해서 만들어낼수 있습니다. 아까 봇파더에서 '/help'의 결과에 보면 간단한 명령어들이 즐비해있었거든요.
Edit Bots
/setname - change a bot's name
/setdescription - change bot description
/setabouttext - change bot about info
/setuserpic - change bot profile photo
/setcommands - change the list of commands
/deletebot - delete a bot
Bot Settings
/token - generate authorization token
/revoke - revoke bot access token
/setinline - toggle inline mode (https://core.telegram.org/bots/inline)
/setinlinegeo - toggle inline location requests (https://core.telegram.org/bots/inline#location-based-results) /setinlinefeedback - change inline feedback (https://core.telegram.org/bots/inline#collecting-feedback) settings
/setjoingroups - can your bot be added to groups?
/setprivacy - toggle privacy mode (https://core.telegram.org/bots#privacy-mode) in groups
여기있는 Edit Bots 기능들을 통해서 텔레그램 봇의 사진과 디스크립션, 이름, 명령어를 변경할 수도 있고요. Bot Settings 의 기능을 통해서 토큰을 새로 만들거나 해제할수 있고 부가적인 기능들을 부여할수 있습니다.
하지만 본 글에서는 심플하게 텔레그램 봇을 만들어 보고 최대한 간단하게 채팅방에 메세지를 보내서 텔레그램 봇을 만들고 작동시켜보는 최대한 간단한 내용이 되도록 했습니다~.
텔레그램 봇의 튜토리얼 1단계인 셈이지요. 참고가 되셨으면 좋겠습니다. 텔레그램 봇 만들기 방법에 대해서 마칩니다. 감사합니다.
'dev' 카테고리의 다른 글
리눅스 root 계정 활성화하여 로그인 접속하는 방법( AWS, GCP ) (0) | 2020.05.31 |
---|---|
마이크로 서비스와 모놀리식 서비스 아키텍처 (0) | 2020.05.26 |
모바일 홈화면에 쿠팡 파트너스 링크를 추가하는 방법 (16) | 2020.05.16 |
i18n, l10n, k8s, t9n, g11n - 숫자단어, 숫자약어 정리 (7) | 2020.05.12 |
node.js 설치와 개발 환경 구성(윈도우 개발 + Github + 리눅스 운영) (1) | 2020.04.04 |
구글 클라우드 예산 초과 및 결제 금액 발생 시 알림 설정 (1) | 2020.03.01 |
구글 클라우드 프리티어 이후 항상(평생) 무료 사용하는 방법 (11) | 2020.03.01 |
IOS - UIWebView와 WKWebView (3) | 2020.02.29 |