제가 직접 확인 해본 결과로는, 이 글에서는 Telegram Bot을 만들기 위해 웹후크와 Google 스프레드시트를 사용하는 방법에 대해 상세히 알려드립니다. 특히, 코드 작성 없이도 누구나 따라 할 수 있도록 쉽게 설명할게요!
- 웹후크란 무엇인가요?
- Telegram Bot 생성하기
- 1단계: 인증 토큰 받기
- 2단계: Google 스프레드시트 준비
- 3단계: 웹앱 URL 만들기
- 웹후크 설정하기
- 1단계: 필수 변수를 설정하기
- 2단계: 웹후크 설정하기
- 메시지 전송 기능 구현하기
- 고급 기능 추가하기
- 도중에 길을 잃었을 경우
- 자주 묻는 질문 (FAQ)
- Telegram Bot을 만드는 데 필요한 비용은 얼마인가요?
- Telegram 봇이 수신할 수 있는 메시지 형식은 어떤 것이 있나요?
- 봇의 기능은 어떻게 제한할 수 있나요?
- 구글 스프레드시트에서 봇의 데이터를 삭제하면 어떻게 되나요?
- 함께보면 좋은글!
웹후크란 무엇인가요?
웹후크(webhook)는 앱과 앱 간의 데이터 전송을 실시간으로 가능하게 해주는 특별한 기법이랍니다. 예를 들어, 메시지를 통해 다른 앱으로 데이터를 전송하고 응답을 받을 수 있게 해주죠. 티켓팅이나 알림 시스템 등에서 널리 사용되고 있어요. 웹후크는 언제, 어떤 데이터가 전송될지를 정해놓지 않고, 이벤트가 발생했을 때 동작해요. 그렇다면 Telegarm과 어떻게 연결되는지 궁금하지 않으신가요? 아래 내용을 설명드릴게요.
웹후크의 작동 원리
- 이벤트 발생: 사용자가 Telegram Bot에 메시지를 보냅니다.
- 데이터 전송: 앞서 설정된 웹후크 URL로 데이터가 전송됩니다.
- 응답 처리: 웹앱이 이 데이터를 처리하고 필요한 응답을 Telegram으로 다시 전송하게 되죠.
이 개념이 이해가 되셨다면, 이제 실제로 Telegram Bot을 어떻게 만드는지 한 단계씩 안내해드리려고 해요.
Telegram Bot 생성하기
이제 본격적으로 자신만의 Telegram Bot을 만들어보죠! 다음 단계에 따라 차근차근 진행해보세요.
1단계: 인증 토큰 받기
먼저 BotFather라는 Telegram 봇을 사용할 거예요. BotFather는 Telegram Bot을 생성할 수 있는 도구입니다.
- Telegram에서 @botfather를 검색해서 오픈하세요.
/start
명령어를 통해 BotFather와 대화하세요./newbot
명령어를 입력하여 새 봇을 만들기 시작합니다.- 봇의 이름과 사용자 ID를 정해주면, BotFather가 인증 토큰을 부여해요. 이 토큰을 꼭 기억해두세요.
2단계: Google 스프레드시트 준비
이제 Google 스프레드시트를 열고 새로운 스프레드시트를 생성해 주세요. 이곳에 메시지와 데이터를 저장할 거예요. 아래의 단계를 따라 해볼까요?
- 구글 드라이브에 가서 빈 스프레드시트를 만들어 주세요.
- 툴 > 스크립트 편집기로 가서, 웹앱 URL을 생성할 준비를 합니다.
3단계: 웹앱 URL 만들기
이제 Telegram이 데이터를 전송할 주소를 마련해야 해요! 스크립트 편집기에서 아래의 절차를 따라주세요.
- 게시 > 웹앱으로 배포로 이동하세요.
- 새 버전 설정: 항상 새 버전으로 설정하고, 사용자도 누구나 접근 가능하게 설정합니다.
이제 웹앱 URL이 생성되었습니다! 이 주소는 Telegram이 데이터를 전송할 때 사용할 주소입니다.
웹후크 설정하기
이제 데이터가 Telegram에서 Google 스프레드시트로 어떻게 흘러가는지 설정하는 단계예요. 다음 단계를 따라 해볼까요?
1단계: 필수 변수를 설정하기
아래 링크 구조가 자주 사용될 테니, 변수를 만들어 관리하기 편하게 해주세요.
javascript
var telegramBotToken = 'YOUR_BOT_TOKEN';
var telegramApiBaseUrl = 'https://api.telegram.org/bot' + telegramBotToken + '/';
토큰을 위에 입력하는 것을 잊지 마세요!
2단계: 웹후크 설정하기
이제 웹후크를 설정해봅시다. 아래의 코드를 스크립트 편집기에 붙여 넣어주세요.
javascript
function setWebhook() {
var url = telegramApiBaseUrl + 'setWebhook?url=' + YOUR_WEBAPP_URL;
var response = UrlFetchApp.fetch(url);
Logger.log(response.getContentText());
}
이 코드를 실행하면 Telegram이 구글 웹앱으로 데이터를 보내기 시작할 거예요!
메시지 전송 기능 구현하기
이제는 봇이 메시지를 어떻게 받을지 설정해야 해요. 아래 코드를 스크립트에 추가해 주세요.
“`javascript
function doPost(e) {
var update = JSON.parse(e.postData.contents);
var chatId = update.message.chat.id;
var message = update.message.text;
if (message === 'ping') {
sendMessage(chatId, 'pong');
}
}
function sendMessage(chatId, text) {
var url = telegramApiBaseUrl + ‘sendMessage?chat_id=’ + chatId + ‘&text=’ + encodeURIComponent(text);
UrlFetchApp.fetch(url);
}
“`
이 기능은 사용자가 “ping”이라고 메시지를 보내면 “pong”이라고 응답하게 되어있답니다!
고급 기능 추가하기
단순한 봇에서 벗어나 질문-답변 봇으로 진화할 준비가 거의 다 되셨어요. 추가적으로 다음 기능을 고려해보세요.
- 질문 관리: 스프레드시트에 질문 목록을 추가해 사용자와의 인터랙션을 향상시킬 수 있어요.
- 상태 업데이트: 봇이 사용자의 답변을 스프레드시트에 기록하게끔 하면 점수 관리도 가능하답니다.
도중에 길을 잃었을 경우
전체 코드를 한 번 더 정리해서 필요한 경우 참고할 수 있도록 해볼게요.
“`javascript
var telegramBotToken = ‘YOUR_BOT_TOKEN’;
var telegramApiBaseUrl = ‘https://api.telegram.org/bot’ + telegramBotToken + ‘/’;
function setWebhook() {
var url = telegramApiBaseUrl + ‘setWebhook?url=’ + YOUR_WEBAPP_URL;
var response = UrlFetchApp.fetch(url);
Logger.log(response.getContentText());
}
function doPost(e) {
var update = JSON.parse(e.postData.contents);
var chatId = update.message.chat.id;
var message = update.message.text;
if (message === 'ping') {
sendMessage(chatId, 'pong');
}
}
function sendMessage(chatId, text) {
var url = telegramApiBaseUrl + ‘sendMessage?chat_id=’ + chatId + ‘&text=’ + encodeURIComponent(text);
UrlFetchApp.fetch(url);
}
“`
이제 여러분은 Telegram 봇을 만드는 기본 단계를 완벽히 이해하게 되었어요! 원하는 대로 기능을 추가하고 수정해 보세요.
자주 묻는 질문 (FAQ)
Telegram Bot을 만드는 데 필요한 비용은 얼마인가요?
비용은 전혀 들지 않아요. Telegram은 무료로 제공되며, Google 스프레드시트와 Apps Script도 무료로 사용할 수 있으니까요!
Telegram 봇이 수신할 수 있는 메시지 형식은 어떤 것이 있나요?
문자 메시지, 사진, 비디오 등 다양한 형식을 수신할 수 있습니다.
봇의 기능은 어떻게 제한할 수 있나요?
코드에서 특정 명령어에 대한 응답만 설정하면 가능해요. 예를 들어, ‘시작’이나 ‘끝’ 같은 키워드로 제약을 둬서 가이드할 수 있어요.
구글 스프레드시트에서 봇의 데이터를 삭제하면 어떻게 되나요?
봇과 평행으로 데이터가 흐르지 않기 때문에, 수동으로 데이터를 삭제할 수는 있지만 따라서 봇의 역활에는 영향을 주지 않습니다.
텔레그램은 정말 많은 가능성을 가지고 있는 플랫폼이에요. 다양한 방식으로 자신의 필요에 맞춰봇을 만들 수 있는 기회를 가져보세요. 여기까지 따라하신 여러분 모두 고생하셨습니다!
키워드: Telegram Bot, 웹후크, Google 스프레드시트, 코드 없는 프로그래밍, API, Bots for Telegram, Telegram 사용법, Google Apps Script, Telegram 메시지 전송, Telegram 봇 만들기, botfather.