FazeliDev
FazeliDev
خواندن ۱ دقیقه·۴ سال پیش

دیپلوی ربات تلگرام روی Deta با Fast API



سلام

خب امروز میخایم یه ربات تلگرام خیلی ساده بنویسیم که روی دتا دیپلوی شده باشه و کار کنه..

ربات رو با python-telegram-bot مینویسیم..

چطوری کار میکنه؟؟

با Fast API یه api ساده مینویسیم که ازش به عنوان وبهوکِ رباتمون استفاده کنیم.. بعدش هم لینک apiمون رو به عنوان وبهوکِ ربات ست میکنیم.. به همین راحتی :)))

بعد از اون هر پیامی ک به ربات بره، تلگرام برای apiمون میفرسته!!!


خب بریم سراغ پیاده سازی:

از جایی که در قسمت قبل بودیم، ادامه میدیم..

** البته اولش اینو یه نگاهی بندازید!

فایل main.py رو ادیت میکنیم(از اول مینویسیمش!):

from fastapi import FastAPI, Request from telegram import Update, Bot,InlineKeyboardButton, InlineKeyboardMarkup from telegram.ext import Dispatcher, CommandHandler, CallbackContext, MessageHandler, Filters,CallbackQueryHandler BotToken = &quot<YOUR-TOKEN-HERE>&quot def start(update: Update, _: CallbackContext): update.message.reply_text(&quothiiii , how you doin!?&quot) def get_dispatcher(): bot = Bot(BotToken) dispatcher = Dispatcher(bot=bot, update_queue=None, use_context=True) dispatcher.add_handler(CommandHandler('start', start)) return dispatcher dispatcher = get_dispatcher() app = FastAPI() @app.post(&quot/webhook&quot) async def webhook_handler(req: Request): data = await req.json() update = Update.de_json(data, dispatcher.bot) dispatcher.process_update(update)


مطمعن بشید که فایل requirements.txt این شکلیه:

fastapi python-telegram-bot

کدتون رو دیپلوی کنید..

deta deploy

حتما میدونید چطوری وبهوک ست کنید برای رباتتون، پس لینکِ microی api ی خودتون روی دتا رو به این صورت به عنوان وبهوک ست کنید(توکن و لینک خودتون رو بزارید):

curl --header 'Content-Type: application/json' --data '{&quoturl&quot: &quothttps://hm6qpo.deta.dev/webhook&quot}' 'https://api.telegram.org/bot<YOUR_BOT_TOKEN>/setWebhook'


حالا اگه رباتتون استارت کنید باید کار کنه :)


تلگرام:

@fastapi_ir

python3telegram botfastapiapipython telegram bot
من یه مهندس نرم افزارم که تلاش دارم چیزهای که میدونم رو با بقیه به اشتراک بذارم
شاید از این پست‌ها خوشتان بیاید