파이썬으로 텔레그램 봇 만들기
안녕하세요 여러분😍
봇 텔레그램을 만들어 봅시다
python
오늘은 무엇을 만들까요?
이 글에서는 파이썬을 사용하여 밈 이미지를 보내는 텔레그램 봇을 만듭니다.
또한 이 기사에서는 인라인 키보드를 통합하여 경험을 단순화하는 방법을 보여줍니다.
다음은 목차입니다.
First, if you don't have an account on the telegram you should make an account (it's very simple)
전보 측면(단계)
전보 다운로드
First, if you don't have an account on the telegram you should make an account (it's very simple)
전보 다운로드
로그인 또는 등록
이 비디오는 로그인 또는 등록에 도움이 될 수 있습니다.
( )
BotFather를 통해 봇 만들기
텔레그램 로그인 후
BothFather
에 대해 검색/newbot
It must end in
bot
. Like this, for example:memeBot
ormeme_bot
.
API_TOKEN
를 보냅니다.Please keep it and never give it to anyone
코드 사이드
환경 만들기
( )
파이썬 라이브러리 설치
pip install python-telegram-bot
If you can't install this library check this video
( )
Hello World를 보내는 첫 번째 줄을 작성합니다.
라인이 아니라 라인중 일부입니다🤣 거짓말을 하고 싶지는 않았지만 이 작은 코드 라인😉
from telegram.ext import Updater , CommandHandler,CallbackContext
from telegram.update import Update
API_TOKEN="put your API here"
updater = Updater(API_TOKEN, use_context=True)
def start(update: Update, context: CallbackContext):
update.message.reply_text("hello world")
updater.dispatcher.add_handler(CommandHandler("start", start))
updater.start_polling()
API_TOKEN
봇을 제어하고 코드 작성을 시작합니다.
Updater
그 목적은 Telegram에서 업데이트를 수신하여 해당 발송자에게 전달하는 것입니다. 또한 별도의 스레드에서 실행되므로 사용자는 예를 들어 명령줄에서 봇과 상호 작용할 수 있습니다.
update
개체에 발생한 이벤트에 대한 정보가 포함되어 있습니다. & 이 개체는 들어오는 업데이트를 나타냅니다.
start
사용자가 시작 명령을 클릭하면 Hello World를 보내는 이 기능
위 코드의 출력
meme 폴더 읽기 기능 추가
import os
def readFolder():
yourpath = "file path"
lis=[]
for root, dirs, files in os.walk(yourpath, topdown=False):
for name in files:
lis.append(os.path.join(root, name))
return lis[1]
print(readFolder())
폴더에서 임의의 이미지를 선택하는 임의 기능 추가
import os
import random
def readFolder():
random_=random.randint(0,total image)
yourpath = "file path"
lis=[]
for root, dirs, files in os.walk(yourpath, topdown=False):
for name in files:
lis.append(os.path.join(root, name))
return lis[random_]
print(readFolder())
밈 쪽
이제 meme 이미지를 추가해야 합니다. 폴더를 만들고 이 폴더에서 파일을 읽을 수 있도록 만들겠습니다function
.
1. Google 드라이브에서 이 링크를 엽니다. +3000 meme 이미지가 있습니다. 여기를 클릭하세요.
2. 다운로드
3. 이 단락으로 이동하여 폴더 읽기 기능을 추가합니다.
봇을 통해 밈 보내기
이제 우리는 meme을 보내는 코드를 작성할 것입니다.
가자😊
import random
import os
from telegram.chataction import ChatAction
from time import sleep
from telegram.ext import Updater,CommandHandler,CallbackQueryHandler,CallbackContext,MessageHandler,Filters
from telegram.update import Update
from telegram.ext.updater import Updater
yourpath = "file path"
lis=[]
for root, dirs, files in os.walk(yourpath, topdown=False):
for name in files:
lis.append(os.path.join(root, name))
print("loading.....")
API_KEY='API_KEY'
def start_commend(update: Update, context: CallbackContext):
"""
message to handle any "Option [0-9]" Regrex.
"""
context.bot.send_chat_action(chat_id=update.effective_chat.id, action=ChatAction.TYPING)
chat_id = update.message.chat_id
sleep(1)
n=random.randint(0,3)
file=lis[n]
context.bot.send_photo(chat_id, photo=open(file, 'rb'))
def main():
updaters=Updater(API_KEY,use_context=True)
dp=updaters.dispatcher
dp.add_handler(CommandHandler("start",start_commend))
updaters.start_polling()
updaters.idle()
main()
context.bot.send_chat_action(chat_id=update.effective_chat.id, action=ChatAction.UPLOAD_PHOTO)
**line 22** to add action in chat "Uploading photo"
인라인 키보드 추가
인라인 키보드
경우에 따라 채팅에 메시지를 보내지 않는 것이 좋습니다. 예를 들어 사용자가 설정을 변경하거나 결과를 넘길 때. 이 경우 자신이 속한 메시지에 직접 통합된 InlineKeyboards
를 사용할 수 있습니다.
대신 인라인 키보드는 콜백 버튼, URL 버튼, 인라인 버튼으로 전환 등 보이지 않는 곳에서 작동하는 버튼을 지원합니다.
예시:
인라인 키보드 기능 추가
import random
import os
from telegram.chataction import ChatAction
from time import sleep
from telegram.ext import Updater,CommandHandler,CallbackQueryHandler,CallbackContext,MessageHandler,Filters
from telegram import ReplyKeyboardMarkup,ReplyKeyboardRemove
from telegram.update import Update
from telegram.ext.updater import Updater
from telegram.replykeyboardremove import ReplyKeyboardRemove
yourpath = file_path
lis=[]
for root, dirs, files in os.walk(yourpath, topdown=False):
for name in files:
lis.append(os.path.join(root, name))
print("loading.....")
API_KEY=API_KEY
def start_commend(update: Update, context: CallbackContext):
kd_layout=[["send generate meme"]]
kbds = ReplyKeyboardMarkup(kd_layout)
update.message.reply_text(text="""press on "send generate meme" """, reply_markup=kbds)
def echo(update: Update, context: CallbackContext):
"""
message to handle any "Option [0-9]" Regrex.
"""
context.bot.send_chat_action(chat_id=update.effective_chat.id, action=ChatAction.TYPING)
chat_id = update.message.chat_id
sleep(1)
n=random.randint(0,3)
sleep(1)
file=lis[n]
if update.message.text=="send generate meme":
context.bot.send_photo(chat_id, photo=open(file, 'rb'))
def main():
updaters=Updater(API_KEY,use_context=True)
dp=updaters.dispatcher
dp.add_handler(CommandHandler("start",start_commend))
dp.add_handler(MessageHandler(Filters.regex(r"."), echo))
updaters.start_polling()
updaters.idle()
main()
kd_layout
이 변수는 send generate meme
라는 인라인 키보드를 추가하여 다른 인라인 키보드를 만들고 파이썬에서 2D array
와 같은 배열을 만들 수 있습니다.
index: 0, 첫 번째 옵션 index: 1 , 이 접근 방식에서 인라인 키보드의 두 번째 옵션 있음
예: kbd_layout = [['reaction', 'video'], ['image', 'joke'],['random']]
결과:
보드를 사용자 정의하는 방법
이 문서를 작성해 주셔서 감사합니다.
Reference
이 문제에 관하여(파이썬으로 텔레그램 봇 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/mo7ammedsharaki/make-telegram-bot-using-python-3e1i
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
pip install python-telegram-bot
If you can't install this library check this video
from telegram.ext import Updater , CommandHandler,CallbackContext
from telegram.update import Update
API_TOKEN="put your API here"
updater = Updater(API_TOKEN, use_context=True)
def start(update: Update, context: CallbackContext):
update.message.reply_text("hello world")
updater.dispatcher.add_handler(CommandHandler("start", start))
updater.start_polling()
import os
def readFolder():
yourpath = "file path"
lis=[]
for root, dirs, files in os.walk(yourpath, topdown=False):
for name in files:
lis.append(os.path.join(root, name))
return lis[1]
print(readFolder())
import os
import random
def readFolder():
random_=random.randint(0,total image)
yourpath = "file path"
lis=[]
for root, dirs, files in os.walk(yourpath, topdown=False):
for name in files:
lis.append(os.path.join(root, name))
return lis[random_]
print(readFolder())
이제 meme 이미지를 추가해야 합니다. 폴더를 만들고 이 폴더에서 파일을 읽을 수 있도록 만들겠습니다
function
.1. Google 드라이브에서 이 링크를 엽니다. +3000 meme 이미지가 있습니다. 여기를 클릭하세요.
2. 다운로드
3. 이 단락으로 이동하여 폴더 읽기 기능을 추가합니다.
봇을 통해 밈 보내기
이제 우리는 meme을 보내는 코드를 작성할 것입니다.
가자😊
import random
import os
from telegram.chataction import ChatAction
from time import sleep
from telegram.ext import Updater,CommandHandler,CallbackQueryHandler,CallbackContext,MessageHandler,Filters
from telegram.update import Update
from telegram.ext.updater import Updater
yourpath = "file path"
lis=[]
for root, dirs, files in os.walk(yourpath, topdown=False):
for name in files:
lis.append(os.path.join(root, name))
print("loading.....")
API_KEY='API_KEY'
def start_commend(update: Update, context: CallbackContext):
"""
message to handle any "Option [0-9]" Regrex.
"""
context.bot.send_chat_action(chat_id=update.effective_chat.id, action=ChatAction.TYPING)
chat_id = update.message.chat_id
sleep(1)
n=random.randint(0,3)
file=lis[n]
context.bot.send_photo(chat_id, photo=open(file, 'rb'))
def main():
updaters=Updater(API_KEY,use_context=True)
dp=updaters.dispatcher
dp.add_handler(CommandHandler("start",start_commend))
updaters.start_polling()
updaters.idle()
main()
context.bot.send_chat_action(chat_id=update.effective_chat.id, action=ChatAction.UPLOAD_PHOTO)
**line 22** to add action in chat "Uploading photo"
인라인 키보드 추가
인라인 키보드
경우에 따라 채팅에 메시지를 보내지 않는 것이 좋습니다. 예를 들어 사용자가 설정을 변경하거나 결과를 넘길 때. 이 경우 자신이 속한 메시지에 직접 통합된 InlineKeyboards
를 사용할 수 있습니다.
대신 인라인 키보드는 콜백 버튼, URL 버튼, 인라인 버튼으로 전환 등 보이지 않는 곳에서 작동하는 버튼을 지원합니다.
예시:
인라인 키보드 기능 추가
import random
import os
from telegram.chataction import ChatAction
from time import sleep
from telegram.ext import Updater,CommandHandler,CallbackQueryHandler,CallbackContext,MessageHandler,Filters
from telegram import ReplyKeyboardMarkup,ReplyKeyboardRemove
from telegram.update import Update
from telegram.ext.updater import Updater
from telegram.replykeyboardremove import ReplyKeyboardRemove
yourpath = file_path
lis=[]
for root, dirs, files in os.walk(yourpath, topdown=False):
for name in files:
lis.append(os.path.join(root, name))
print("loading.....")
API_KEY=API_KEY
def start_commend(update: Update, context: CallbackContext):
kd_layout=[["send generate meme"]]
kbds = ReplyKeyboardMarkup(kd_layout)
update.message.reply_text(text="""press on "send generate meme" """, reply_markup=kbds)
def echo(update: Update, context: CallbackContext):
"""
message to handle any "Option [0-9]" Regrex.
"""
context.bot.send_chat_action(chat_id=update.effective_chat.id, action=ChatAction.TYPING)
chat_id = update.message.chat_id
sleep(1)
n=random.randint(0,3)
sleep(1)
file=lis[n]
if update.message.text=="send generate meme":
context.bot.send_photo(chat_id, photo=open(file, 'rb'))
def main():
updaters=Updater(API_KEY,use_context=True)
dp=updaters.dispatcher
dp.add_handler(CommandHandler("start",start_commend))
dp.add_handler(MessageHandler(Filters.regex(r"."), echo))
updaters.start_polling()
updaters.idle()
main()
kd_layout
이 변수는 send generate meme
라는 인라인 키보드를 추가하여 다른 인라인 키보드를 만들고 파이썬에서 2D array
와 같은 배열을 만들 수 있습니다.
index: 0, 첫 번째 옵션 index: 1 , 이 접근 방식에서 인라인 키보드의 두 번째 옵션 있음
예: kbd_layout = [['reaction', 'video'], ['image', 'joke'],['random']]
결과:
보드를 사용자 정의하는 방법
이 문서를 작성해 주셔서 감사합니다.
Reference
이 문제에 관하여(파이썬으로 텔레그램 봇 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/mo7ammedsharaki/make-telegram-bot-using-python-3e1i
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import random
import os
from telegram.chataction import ChatAction
from time import sleep
from telegram.ext import Updater,CommandHandler,CallbackQueryHandler,CallbackContext,MessageHandler,Filters
from telegram import ReplyKeyboardMarkup,ReplyKeyboardRemove
from telegram.update import Update
from telegram.ext.updater import Updater
from telegram.replykeyboardremove import ReplyKeyboardRemove
yourpath = file_path
lis=[]
for root, dirs, files in os.walk(yourpath, topdown=False):
for name in files:
lis.append(os.path.join(root, name))
print("loading.....")
API_KEY=API_KEY
def start_commend(update: Update, context: CallbackContext):
kd_layout=[["send generate meme"]]
kbds = ReplyKeyboardMarkup(kd_layout)
update.message.reply_text(text="""press on "send generate meme" """, reply_markup=kbds)
def echo(update: Update, context: CallbackContext):
"""
message to handle any "Option [0-9]" Regrex.
"""
context.bot.send_chat_action(chat_id=update.effective_chat.id, action=ChatAction.TYPING)
chat_id = update.message.chat_id
sleep(1)
n=random.randint(0,3)
sleep(1)
file=lis[n]
if update.message.text=="send generate meme":
context.bot.send_photo(chat_id, photo=open(file, 'rb'))
def main():
updaters=Updater(API_KEY,use_context=True)
dp=updaters.dispatcher
dp.add_handler(CommandHandler("start",start_commend))
dp.add_handler(MessageHandler(Filters.regex(r"."), echo))
updaters.start_polling()
updaters.idle()
main()
Reference
이 문제에 관하여(파이썬으로 텔레그램 봇 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/mo7ammedsharaki/make-telegram-bot-using-python-3e1i텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)