AI with 재미
텔레그램 봇 생성 및 그룹 채팅 연동
jhinux
2025. 11. 18. 16:17
텔레그램 봇 생성 및 그룹 채팅 연동
본 문서는 텔레그램 봇을 신규 생성하고, 특정 그룹 채팅방과 연동하여 메시지를 발송하는 전 과정을 절차식으로 기술합니다.
-
신규 봇 생성 및 API 토큰 획득
텔레그램의 공식 봇 관리자인
@BotFather를 통해 봇을 생성하고 API 토큰을 발급받습니다.- 텔레그램 검색창에서
@BotFather를 찾아 대화를 시작합니다. /newbot명령어를 입력합니다.- 봇의 이름(표시 이름)과 사용자 이름(고유 ID,
_bot으로 끝나야 함)을 순서대로 입력합니다. - 생성이 완료되면, HTTP API에 접근할 수 있는 API 토큰(예:
123456:ABC-DEF...)이 발급됩니다. 이 토큰은 안전하게 보관해야 합니다.
- 텔레그램 검색창에서
-
API 토큰 유효성 검증
발급받은 토큰이 정상적으로 작동하는지
getMe메소드를 통해 확인합니다.https://api.telegram.org/bot[발급받은_API_토큰]/getMe
브라우저 또는 API 테스트 도구로 위 URL을 호출했을 때,
{"ok":true, "result":{...}}와 같이 봇 정보가 포함된 JSON 응답을 받으면 토큰이 유효한 것입니다. -
그룹방 초대 및 봇 프라이버시 설정 (핵심)
봇이 그룹방의 메시지를 읽고 ID를 확인하기 위해서는 봇의 '프라이버시 모드'를 반드시 비활성화해야 합니다.
문제점: 봇의 '프라이버시 모드(Privacy Mode)'가 켜져 있으면(기본값), 봇은 그룹방의 일반 대화를 무시합니다. (오직/명령어만 인식) 이로 인해getUpdatesAPI를 호출해도 결과가[](빈 배열)로 나옵니다.해결 절차:- 다시
@BotFather와의 대화로 돌아갑니다. /mybots명령어로 내 봇 목록을 엽니다.- 설정할 봇을 선택한 뒤,
Bot Settings버튼을 누릅니다. Privacy버튼을 선택합니다.Turn off또는Disable버튼을 눌러 프라이버시 모드를 끕니다.
- 다시
-
그룹 채팅 ID (
chat_id) 획득프라이버시 모드를 끈 후, 봇이 그룹방의 메시지를 읽을 수 있게 되었습니다. 이제
chat_id를 획득합니다.- 봇을 메시지를 보낼 그룹 채팅방에 초대합니다. (이미 초대했다면 내보냈다가 다시 초대하는 것이 좋습니다.)
- 초대된 그룹방에서 아무 메시지나 (예:
테스트) 입력합니다. - 웹 브라우저에서
getUpdatesAPI를 호출합니다.
https://api.telegram.org/bot[발급받은_API_토큰]/getUpdates
결과로 나온 JSON 데이터에서
message.chat.id값을 찾습니다. 그룹방의 ID는 음수(-)로 시작하는 긴 숫자입니다. (예:-100123456...) -
최종 메시지 발송 테스트
획득한 API 토큰과 그룹방
chat_id를 사용하여sendMessage메소드를 호출합니다.https://api.telegram.org/bot[발급받은_API_TOKEN]/sendMessage?chat_id=[그룹방_ID]&text=[보내고_싶은_메시지]
예시:
https://api.telegram.org/bot123456:ABC-DEF/sendMessage?chat_id=-100123456&text=그룹방 연동 테스트 성공입니다.
위 URL을 실행했을 때 봇이 해당 그룹방에 "그룹방 연동 테스트 성공입니다."라는 메시지를 전송하면 모든 절차가 완료된 것입니다.