텔레그램 봇을 활용하여 실시간으로 메시지를 받거나 시스템의 알림을 받고 싶으신가요? 웹훅(Webhook)은 특정 이벤트가 발생했을 때 텔레그램이 여러분이 지정한 URL로 자동으로 메시지를 보내주는 방식으로 이를 통해 실시간 메시지를 수신이 가능합니다. 이 글에서는 서버 개발에 대한 깊은 지식 없이도 텔레그램 봇을 생성하고 웹훅을 설정하는 텔레그램 '내부' 설정에 초점을 맞춰 설명해 드리겠습니다.

1. 텔레그램 봇 생성 및 토큰 확보
웹훅 설정을 시작하기 전에 먼저 텔레그램 봇이 있어야 합니다. 봇을 만들고 이 봇을 제어할 수 있는 고유한 봇 토큰(Bot Token)을 받는 과정은 매우 간단합니다.
BotFather 찾기:
- 텔레그램 앱을 엽니다.
- 검색창에
@BotFather를 입력하여 공식 BotFather 봇을 찾아 대화를 시작합니다.
새 봇 생성 시작:
- BotFather에게
/newbot명령어를 입력합니다.
봇 이름 및 사용자명 지정:
- 봇의 표시 이름(예:
내 시스템 알림 봇)을 입력합니다. 이 이름은 사용자들이 봇과의 채팅에서 보게 될 이름입니다. - 이어서 봇의 사용자명(예:
MySystemAlerts_bot)을 입력합니다. 사용자명은 반드시_bot으로 끝나야 하며, 텔레그램 내에서 고유해야 합니다.
봇 토큰 확보:
- 봇 생성이 완료되면 BotFather가 축하 메시지와 함께
HTTP API 토큰을 알려줍니다. - 이 토큰은 여러분의 봇을 제어하는 열쇠와 같으므로 절대 다른 사람에게 노출되지 않도록 안전하게 보관해야 합니다.
- 예시:
123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11
2. 웹훅 URL 준비 (텔레그램 설정만을 위한 전제)
텔레그램 웹훅을 설정하려면, 텔레그램이 이벤트를 보낼 외부에서 접근 가능한 URL이 필요합니다. 이 URL은 텔레그램으로부터 HTTP POST 요청을 받아 처리할 수 있는 여러분의 서버나 웹 서비스의 주소가 됩니다.
여기서 중요한 점은 이 URL이 HTTPS 프로토콜을 사용해야 한다는 것입니다. 텔레그램은 보안상의 이유로 HTTP 프로토콜을 사용하는 웹훅 URL은 허용하지 않습니다. 이 엔드포인트를 어떻게 구성하는지는 이 글의 범위를 벗어나지만, 웹훅 설정을 위한 필수 전제 조건임을 기억해 주세요.
3. 텔레그램에 웹훅 URL 설정 (setWebhook API 호출)
이제 봇 토큰과 텔레그램 이벤트가 전달될 URL이 준비되었으니, 텔레그램 서버에 웹훅을 등록할 차례입니다. 텔레그램 Bot API가 제공하는 setWebhook 메서드를 사용하면 됩니다.
가장 간단한 방법은 웹 브라우저나 cURL 명령어를 이용하는 것입니다.
① 웹 브라우저를 이용하는 방법:
다음 형식의 URL을 만들어서 웹 브라우저 주소창에 붙여 넣고 실행합니다.
https://api.telegram.org/bot[봇-토큰]/setWebhook?url=[유저-엔드포인트-URL]
[봇-토큰]부분에는 BotFather에게 받은 봇 토큰을 입력합니다.[유저-엔드포인트-URL]부분에는 텔레그램 이벤트가 전달될 여러분의 HTTPS URL을 입력합니다.
예시:
봇 토큰이 123456:ABC-DEF이고, 웹훅 엔드포인트 URL이 https://my-awesome-service.com/telegram-notifications라면 다음과 같이 됩니다.
https://api.telegram.org/bot123456:ABC-DEF/setWebhook?url=https://my-awesome-service.com/telegram-notifications
② cURL 명령어를 이용하는 방법:
터미널이나 명령 프롬프트에서 다음 명령어를 실행합니다.
curl -F "url=https://[여러분의-웹훅-엔드포인트-URL]" \
"https://api.telegram.org/bot[당신의-봇-토큰]/setWebhook"
성공적으로 웹훅이 설정되면, 웹 브라우저나 cURL의 응답으로 다음과 같은 JSON 메시지를 받게 됩니다.
{"ok":true,"result":true,"description":"Webhook was set"}
이 메시지는 텔레그램 웹훅이 성공적으로 등록되었음을 의미합니다.
4. 웹훅 정보 확인 및 삭제 (getWebhookInfo, deleteWebhook)
웹훅이 제대로 설정되었는지 확인하거나, 더 이상 필요 없는 웹훅을 삭제하고 싶을 때도 텔레그램 Bot API를 활용할 수 있습니다.
- 현재 웹훅 정보 확인 (
getWebhookInfo):- 웹 브라우저 주소창에 다음 URL을 입력합니다.
https://api.telegram.org/bot[당신의-봇-토큰]/getWebhookInfo- 등록된 웹훅 URL, 마지막 오류 정보, 보류 중인 업데이트 수 등 상세 정보를 확인할 수 있습니다.
- 웹훅 삭제 (
deleteWebhook):- 새로운 웹훅을 설정하기 전에 기존 웹훅을 삭제해야 하는 경우가 있습니다. 다음 URL을 웹 브라우저에 입력하여 웹훅을 삭제할 수 있습니다.
https://api.telegram.org/bot[당신의-봇-토큰]/deleteWebhook - 성공 시 다음과 같은 응답을 받게 됩니다.
{"ok":true,"result":true,"description":"Webhook was deleted"}
- 새로운 웹훅을 설정하기 전에 기존 웹훅을 삭제해야 하는 경우가 있습니다. 다음 URL을 웹 브라우저에 입력하여 웹훅을 삭제할 수 있습니다.
5. 웹훅 설정 완료!
이제 텔레그램 봇은 웹훅을 통해 텔레그램 서버로부터 메시지나 다른 이벤트 업데이트를 자동으로 받아볼 준비가 완료되었습니다. 봇에게 메시지를 보내거나 봇이 있는 채널/그룹에서 활동하면, 설정된 웹훅 URL로 텔레그램 업데이트가 전송됩니다.
'백엔드 > 에이피아이' 카테고리의 다른 글
| 에이 피 아이 - 노티피케이션 (0) | 2022.12.29 |
|---|---|
| 에이 피 아이 - 웹 푸시 (0) | 2022.12.29 |
| 에이피아이 (Application Programming Interface) (0) | 2022.12.18 |