본문 바로가기
Like bot

[bot 기초] telegram bot 손쉽게 만들기, token 에러

by skyfishb 2023. 5. 19.

텔레그램은 전 세계에서 인기를 얻고 있는 메신저 앱입니다. 텔레그램 봇은 사용자와 상호작용하며 다양한 작업을 수행할 수 있는 자동화된 계정입니다. 이번 포스팅에서는 손쉽게 텔레그램 봇을 만드는 방법을 알려드리겠습니다.

 

Telegram Bot란?

텔레그램 봇은 텔레그램 메신저에서 자동으로 동작하는 계정입니다. 사용자와 대화하고, 텍스트, 사진, 음성 메시지 등 다양한 형식의 정보를 주고받을 수 있습니다. 텔레그램 봇은 사용자 요청에 응답하거나 특정 작업을 자동으로 수행하기 때문에 코인 매매를 도울 수 있습니다.

 

Telegram Bot 만드는 방법

단계 1: Telegram에서 BotFather와 대화하기

텔레그램 앱을 열고, 검색 창에 "BotFather"를 입력합니다.
BotFather를 찾아 대화를 시작합니다.

단계 2: 새로운 봇 생성하기

BotFather와 대화를 시작한 후, "/newbot" 명령어를 입력합니다.
봇의 이름과 사용자명을 입력합니다.

단계 3: 봇 토큰 받기

봇이 성공적으로 생성되면 BotFather가 토큰을 제공합니다.
이 토큰은 봇을 제어하고 인증하는 데 사용됩니다.

단계 4: 봇 설정 및 기능 추가하기

토큰을 사용하여 봇을 설정하고 원하는 기능을 추가할 수 있습니다.
텔레그램 Bot API를 사용하여 메시지 처리, 키보드 추가, 커맨드 처리 등을 구현할 수 있습니다.

 

단계 5: Telegram에서 chat ID 찾기

이 주소에서 토큰정보를 추가해서 chat ID를 찾아줍니다. 

https://api.telegram.org/bot {토큰정보추가}/getUpdates

처음에 이렇게 나오면 맞습니다. 

그 뒤에 텔레그램에서 봇아이디를 찾아서 /start 를 해주고 다시 위의 주소에 들어가서 F5를 하면 길게 나옵니다.

거기서  “update_id”가 chat ID 입니다.

 

봇의 구현은 python을 이용해서 vscode에서 구현 해봅시다. 

 

Python에서 telegram-bot 만들기

파이썬 가상환경에서 python-telegram-bot을 설치합니다. 

pip install python-telegram-bot==13.0

버전을 넣지 않아서 처음에 최신 버전코드를 받았더니 GPT가 대응을 못해서 예전 라이브버리로 설치합니다. 

 

chat gpt 에게 어떻게 코드를 만들면되나 물어봅니다. 

Q. 간단한 에코를 반복하는 텔레그램 봇을 만들어줘

GPT.

from telegram.ext import Updater, MessageHandler, Filters

# 텔레그램 봇의 토큰을 입력합니다.
TOKEN = "여기에_봇의_토큰_입력"

def echo(update, context):
    # 메시지를 받아서 다시 보내는 함수
    context.bot.send_message(chat_id=update.effective_chat.id, text=update.message.text)

def main():
    # 텔레그램 봇의 업데이터 객체를 생성합니다.
    updater = Updater(TOKEN, use_context=True)

    # 메시지를 처리할 핸들러를 추가합니다.
    dispatcher = updater.dispatcher
    dispatcher.add_handler(MessageHandler(Filters.text & (~Filters.command), echo))

    # 봇을 시작합니다.
    updater.start_polling()

    # Ctrl-C를 누를 때까지 계속해서 업데이트를 받습니다.
    updater.idle()

if __name__ == '__main__':
    main()

 token에 토큰 값을 입력하고 telegram에서 /start를 한 뒤에 말을 하면 따라하는 echo 봇입니다.  

 

여기까지 간단 텔레그램 봇 만들기 종료

다음에는 비트코인을 불러오는 봇을 만들어봅시다.

 

by. skyfishb

댓글