Python 3으로 기본 텔레그램 봇을 구축하는 방법

Python 3으로 기본 텔레그램 봇을 구축하는 방법

텔레그램 사용자라면 한 번쯤은 챗봇과 '대화'를 한 적이 있을 것입니다. Telegram의 봇은 놀라운 사용자 정의 기능을 통해 작업 자동화 또는 채팅 그룹에서 게임을 즐기는 등 다양한 이점을 제공합니다.





일부 사람들은 봇을 개발하는 것이 어려운 작업이라고 생각할 수 있지만 실제로는 그렇지 않습니다. 올바른 계획을 세우면 Telegram 봇을 1시간 이내에 시작하고 실행할 수 있습니다! 메시지가 표시되면 인터넷 고양이의 귀여운 사진을 출력하는 간단한 텔레그램 봇을 만드는 방법은 다음과 같습니다.





시작하기

이 튜토리얼에서는 Python 3, 파이썬 텔레그램 봇 그리고 요청 도서관, 그리고 TheCatAPI .





Telegram의 모든 봇에는 통신에 도움이 되는 고유한 토큰이 있습니다. 봇 API 앱의 메시징 인터페이스를 사용하기 위해 Telegram의 개발자들 사이에서 가장 인기 있는 기능 중 하나인 Bot API를 사용하면 텔레그램의 메시지를 인터페이스로 사용할 수 있습니다.

하드웨어 가속 크롬 켜기 또는 끄기

토큰을 얻으려면 다음과 대화를 시작하십시오. @BotFather 이름에서 알 수 있듯이 자신만의 봇을 만들고 사용자 지정할 수 있는 공식 봇입니다. 주어진 링크를 사용하여 봇에 액세스하거나 텔레그램에서 '@botfather'를 검색할 수 있습니다.



채팅에 들어가면 다음을 입력하여 봇을 만듭니다. /뉴봇 명령. 봇의 이름과 사용자 이름을 계속 설정합니다(저희는 @pawsomebot으로 이름을 지정하기로 결정했습니다). 그런 다음 봇에 고유한 토큰을 얻게 됩니다.

이제 모든 전제 조건을 갖추었으므로 흥미로운 부분으로 이동할 시간입니다!





라이브러리 설치

Windows를 사용하는 경우 명령 프롬프트를 열고 다음 명령을 입력합니다.

pip install python-telegram-bot
pip install requests

macOS 또는 Linux를 사용하는 경우 터미널에서 대신 다음 명령을 사용하십시오. 또한 Linux에서는 sudo 권한이 있는 사용자로 로그인했는지 확인하십시오.





pip3 install python-telegram-bot
pip3 install requests

프로그램 작성

컴퓨터에 새 폴더를 만들고 즐겨 사용하는 편집기에서 엽니다. 새 파일을 만들고 이름을 main.py로 지정합니다. 이 파일에는 봇의 소스 코드가 포함됩니다.

이제 일부 내장 기능과 함께 이전에 설치한 라이브러리를 가져오겠습니다.

from telegram.ext import Updater, CommandHandler
import requests
import re

이제부터 프로그램의 흐름은 TheCatAPI에 접속하여 임의의 이미지의 URL을 획득하고 그 이미지를 사용자의 채팅으로 보내는 것입니다.

요청 모듈을 사용하여 수행할 수 있는 이미지 URL을 가져오는 함수부터 시작하겠습니다. 이 함수에서는 TheCatAPI에서 제공하는 임의 파일의 JSON 데이터를 로드하고 나중에 사용할 URL을 추출합니다. JSON 객체의 형식을 보려면 다음으로 이동하십시오. https://api.thecatapi.com/v1/images/search 브라우저에서. 다음과 같은 것을 알 수 있습니다.

[{'breeds':[],'id':'a8c','url':'url.jpg','width':800,'height':533}]

JSON 객체는 사전을 포함하는 배열입니다. 이 사전에는 'url' 키가 있는 URL이 포함되어 있습니다. URL을 추출하려면 배열의 첫 번째 요소를 참조한 다음 관련 키를 참조해야 합니다.

def getUrl():
#obtain a json object with image details
#extract image url from the json object
contents = requests.get('https://api.thecatapi.com/v1/images/search')
url = contents[0]['url']
return url

다음으로 이 이미지를 사용자 채팅으로 보내야 합니다. 이를 위해서는 이미지 URL과 사용자 채팅의 고유 ID가 필요합니다. 이를 위해 래퍼 함수를 ​​만들어 보겠습니다. 먼저, 우리는 getUrl() . 임의의 이미지의 URL을 가져오는 함수 --- 이 URL은 프로그램이 함수를 반복할 때마다 변경됩니다.

그런 다음 메시지에 대한 봇의 대상 위치를 정의하고 Bot API에 내장된 URL을 구문 분석하는 수신자 사용자의 채팅 ID를 얻습니다. 사진을 보내다() 기능.

def sendImage(bot, update):
url = getUrl()
chat_id = update.message.chat_id
bot.send_photo(chat_id=chat_id, image=url)

Bot API의 다양한 내장 기능과 작동 방식에 대해 자세히 알아보려면 Telegram의 공식 문서 이 튜토리얼 이후.

마지막으로 봇의 전반적인 작업을 제어하는 ​​함수를 만들어 보겠습니다. 일반적으로 main()이라고 하는 이 함수는 자습서 시작 부분에서 얻은 토큰을 사용하여 Bot API에 HTTP 요청을 보낸 다음 봇의 사용자 상호 작용이 어떤 것인지 정의하는 곳입니다. 우리처럼 간단한 경우에 이것은 본질적으로 봇을 시작하고 이미지 보내기() 사용자가 요청할 때 기능.

def main():
updater = Updater('1190888035:AAGeJ9316R95NqJLFefV5vQA-UL4np11V2c')
#call sendImage() when the user types a command in the telegram chat
updater.dispatcher.add_handler(CommandHandler('meow',sendImage))
#start the bot
updater.start_polling()
updater.idle()
if __name__ == '__main__':
main()

최종 프로그램은 다음과 같아야 합니다.

from telegram.ext import Updater, CommandHandler
import requests
import re
def getUrl():
#obtain a json object with image details
#extract image url from the json object
contents = requests.get('https://api.thecatapi.com/v1/images/search')
url = contents[0]['url']
return url
def sendImage(bot, update):
url = getUrl()
chat_id = update.message.chat_id
bot.send_photo(chat_id=chat_id, image=url)
def main():
updater = Updater('1190888035:AAGeJ9316R95NqJLFefV5vQA-UL4np11V2c')
#call sendImage() when the user types a command in the telegram chat
updater.dispatcher.add_handler(CommandHandler('meow',sendImage))
#start the bot
updater.start_polling()
updater.idle()
if __name__ == '__main__':
main()

나만의 텔레그램 봇

축하합니다! 메시지가 표시되면 가장 귀여운 인터넷 고양이의 오픈 소스 이미지를 보내는 스트레스 해소 봇을 직접 만들었습니다. 프로그램을 실행하고 입력하십시오. /야옹 봇 채팅에서 활성화하세요.

이것은 기능이 제한된 단순한 봇일 수 있지만 Telegram의 봇 개발 생태계가 얼마나 강력한지를 보여줍니다. 복잡한 서브루틴과 기능을 얼마든지 추가하여 봇의 기능을 향상시킬 수 있습니다. 기여자들이 수년 동안 만든 멋진 Telegram 봇에 대해 자세히 알아보려면 다음을 확인하십시오. 유용한 텔레그램 봇 목록 .

GitHub와 같은 플랫폼에서 Telegram 봇을 위한 다양한 오픈 소스 라이선스 프로그램을 찾을 수도 있습니다. 대부분의 오픈 소스 라이선스를 통해 프로그램의 소스 코드를 사용, 연구, 다운로드 또는 수정할 수 있습니다.

텔레그램 봇을 온라인으로 호스팅하세요

이제 봇을 실행하고 PC에서 main.py를 닫고 텔레그램 메신저 앱에서 봇을 사용하십시오. 여전히 응답합니까? /야옹 명령? 아니오, 그렇지 않습니다.

초보자로서 인터넷에서 실행되는 봇을 이미 생성했는데 PC에서 main.py를 실행해야 하는 이유에 대해 혼란스러울 수 있습니다. 그 이유는 프로그램이 사용자의 PC를 로컬 서버로 사용하여 이 프로그램에서 사용되는 API에 HTTP 요청을 보내기 때문입니다.

따라서 앱을 사용하고 싶을 때마다 프로그램을 실행해야 하는 것은 실현 가능하지도 않고 편리하지도 않습니다. 이 문제를 해결하려면 장치에 대한 봇의 종속성을 제거해야 합니다.

그렇게 하는 한 가지 방법은 Raspberry Pi와 같은 저렴한 인쇄 회로 기판(PCB)을 사용하여 자체 웹 서버를 설정하고 이를 사용하여 프로그램을 실행하는 것입니다. PCB는 에너지 풋프린트가 현저히 낮은 경향이 있기 때문에 밤낮으로 프로그램을 유지하는 비용 없이 PC에서 프로그램을 실행하는 것과 동일한 이점이 있습니다.

또는 프로그램을 클라우드에 배포할 수도 있습니다. Heroku, AWS, Google Cloud 또는 Microsoft Azure와 같은 웹 앱 호스팅 플랫폼으로 이동하여 필요에 가장 적합한 구독을 선택하십시오. 무료 평가판 또는 구독을 선택하고 프로그램의 규모나 범위를 확장함에 따라 업그레이드하는 것이 좋습니다.

공유하다 공유하다 트위터 이메일 Heroku에서 Python 웹사이트를 무료로 호스팅하는 방법

무료로 소규모 웹사이트를 호스팅해야 합니까? Heroku가 바로 당신이 찾고 있는 것일 수 있습니다.

다음 읽기
관련 항목
  • 프로그램 작성
  • 파이썬
  • 전보
  • 챗봇
  • 소셜 미디어 봇
저자 소개 야시 첼라니(10편 게재)

Yash는 물건을 만들고 기술에 관한 모든 것을 쓰는 것을 좋아하는 컴퓨터 공학을 꿈꾸는 학생입니다. 여가 시간에는 스쿼시를 하고 최신 Murakami 사본을 읽고 Skyrim에서 드래곤을 사냥하는 것을 좋아합니다.

Yash Chellani가 참여한 작품 더보기

뉴스레터 구독

뉴스레터에 가입하여 기술 팁, 리뷰, 무료 전자책 및 독점 거래를 확인하십시오!

구독하려면 여기를 클릭하세요.