텔레그램 봇 만드는 법
@BotFather로 텔레그램 봇을 만드는 방법: /newbot 명령, 이름과 bot으로 끝나는 사용자 이름, 토큰과 보관법, 명령어와 버튼, 봇 코드를 실행할 곳까지 알려 드립니다.
텔레그램 봇은 공식 봇 @BotFather와의 채팅에서 만듭니다. /newbot을 보내 봇의 이름을 정하고 bot으로 끝나는 사용자 이름을 고르세요. BotFather가 토큰을 보내 주는데, 이것이 내 프로그램이 봇을 제어하는 열쇠입니다. 봇을 만드는 데 비용은 들지 않습니다. 텔레그램은 봇 플랫폼에 대해 사용자에게도 개발자에게도 요금을 받지 않습니다. 다만 BotFather는 봇을 등록해 줄 뿐입니다. 봇이 누군가에게 답하려면 내 컴퓨터나 서버에서 프로그램이 실행되고 있어야 합니다.
BotFather에서 봇 만드는 방법
- @BotFather를 열고 시작을 누릅니다.
/newbot명령을 보냅니다.- 봇의 이름, 즉 표시되는 이름을 입력합니다.
- 사용자 이름을 입력합니다. 봇의 주소이며
@my_shop_bot같은 형태입니다. 5자에서 32자, 라틴 문자, 숫자, 밑줄만 쓸 수 있고bot으로 끝나야 합니다. - BotFather가 토큰을 보내 줍니다. 이제 봇이 생겼습니다.
이름은 나중에 /setname으로 바꿀 수 있지만, 텔레그램 문서에 따르면 사용자 이름은 만든 뒤에는 바꿀 수 없으니 신중하게 고르세요.
토큰: 무엇이고 어떻게 안전하게 보관하나
토큰은 콜론으로 나뉜 숫자와 문자로 보입니다. 이것을 가진 사람은 봇을 완전히 제어할 수 있으므로, 텔레그램은 안전한 곳에 보관하고 직접 접근이 필요한 사람에게만 공유하라고 권합니다.
- 토큰을 공개 코드, GitHub, 채팅에 올리지 마세요.
- 유출되었다면, 텔레그램 문서에 따르면 BotFather의
/token명령으로 새 토큰을 만들 수 있습니다. 그다음 프로그램이 토큰을 쓰는 모든 곳을 갱신하세요. - 토큰은 봇 전용입니다.
api_id와api_hash는 사용자로 로그인하는 프로그램을 위한 다른 키입니다: 받는 방법.
BotFather에서 설정할 것
/mybots는 내 봇들의 설정을 대화형 메뉴로 열어 주며, BotFather 미니 앱에서도 같은 것을 할 수 있습니다. 봇의 겉모습은 별도의 명령으로도 정할 수 있습니다.
/setname— 봇의 이름./setdescription— 봇의 설명으로, 최대 512자의 짧은 글입니다./setabouttext— “소개” 정보로, 최대 120자의 더 짧은 글입니다./setuserpic— 봇의 프로필 사진./setcommands— 명령어 목록. 누군가/를 입력하면 텔레그램이 이를 제안합니다./setjoingroups— 봇을 그룹에 추가할 수 있는지 여부./setprivacy— 그룹에서 봇이 받는 메시지의 범위./deletebot— 봇을 삭제하고 사용자 이름을 반환합니다.
봇이 답하게 만들기
봇은 Bot API를 통해 텔레그램과 대화하는 프로그램입니다. 모든 요청은 https://api.telegram.org/bot<token>/METHOD로 갑니다. 메시지를 받는 방법은 두 가지이며, 동시에 쓸 수는 없습니다.
- getUpdates(롱 폴링): 내 프로그램이 텔레그램에 새 메시지를 요청합니다. 공개 주소가 필요 없어 시작하기 가장 쉽습니다.
- 웹훅: 텔레그램이 내 서버로 메시지를 보냅니다. HTTPS와 443, 80, 88, 8443 중 하나의 포트가 필요합니다.
HTTP 요청을 보낼 수 있는 언어라면 무엇으로든 코드를 쓸 수 있습니다. 널리 쓰이는 라이브러리로는 Python용 aiogram과 python-telegram-bot, JavaScript용 grammY와 Telegraf가 있습니다. 공식 튜토리얼은 Java 봇을 처음부터 끝까지 다룹니다: BotFather에서 “Hello World”까지. 봇은 내 컴퓨터가 켜져 있는 동안 그 컴퓨터에서 실행하거나, 하루 종일 작동하도록 VPS에서 실행할 수 있습니다.
봇의 버튼과 명령어
- 명령어는 봇이 처리하는
/start같은 단어이며, 힌트 목록은/setcommands로 정합니다. - 메시지 아래의 인라인 버튼은 채팅에 텍스트를 보내지 않고, 봇에게 눌림을 전달하거나 링크를 엽니다.
- 응답 키보드는 일반 키보드 대신 미리 준비된 답변을 보여 줍니다.
- 미니 앱은 텔레그램 안에서 열리는 완전한 인터페이스입니다.
자세한 내용은 봇 기능 개요에 있습니다.
봇의 결제
봇의 디지털 상품과 서비스는 Telegram Stars로 결제합니다. 청구서는 통화 XTR을 쓰며 결제 제공업체가 필요 없습니다. 설정 방법은 내 봇에서 Stars 받기에 있고, 봇이 모은 Stars는 Fragment를 통해 출금합니다: 봇에서 Stars 출금하는 방법.
내 프로그램이 사용자를 위해 Stars나 Premium을 사야 하나요? Shiba Bank 봇에는 이를 위한 API가 있습니다: Telegram Stars API.
자주 묻는 질문
코딩 없이 텔레그램 봇을 만들 수 있나요?
@BotFather로 봇을 등록하는 것은 1분이면 되지만, 봇이 무언가를 하게 하려면 코드가 필요합니다. 텔레그램도 봇을 만들려면 적어도 어느 정도의 프로그래밍 능력이 필요하다고 안내합니다.
텔레그램 봇을 만드는 데 비용이 얼마나 드나요?
들지 않습니다. 텔레그램은 봇 플랫폼에 대해 사용자에게도 개발자에게도 요금을 받지 않습니다. 봇을 직접 서버에 올린다면 그 서버 비용만 내면 됩니다.
BotFather란 무엇인가요?
봇을 만들고 이름, 설명, 사진, 명령어, 토큰을 관리하는 텔레그램의 공식 봇입니다.
BotFather 토큰은 어떻게 받나요?
토큰은 /newbot 직후에 도착합니다. 유출되었다면 BotFather의 /token 명령이 새 토큰을 발급해 줍니다.
봇의 사용자 이름은 어떤 것이 가능한가요?
5자에서 32자의 라틴 문자, 숫자, 밑줄이며 반드시 bot으로 끝나야 합니다. 예: my_shop_bot.
텔레그램 봇에 버튼은 어떻게 추가하나요?
버튼은 봇의 코드에서 정의합니다. 메시지 아래의 인라인 버튼과 응답 키보드가 있습니다. / 메뉴의 명령어 목록은 BotFather에서 /setcommands로 정합니다.


