from telegram import Update
from telegram.ext import ApplicationBuilder , CommandHandler , MessageHandler , filters , ContextTypes
# calling tools
# .............................................................................................................
TOKEN = '7932229876:AAEkqrKEP3D63pXWdTrwj4Ht5mEQNzxh21M'
# import token
#...............................................................................................................
async def start (update : Update , context : ContextTypes.DEFAULT_TYPE) -> None :
await update.message.reply_text('Hello , Welcome To My First Bot . This Bot Made With Python')
# line 6 --> 7 : send first message to user :)
#...............................................................................................................
async def echo (update : Update , context : ContextTypes.DEFAULT_TYPE) -> None :
user_message = update.message.text
await update.message.reply_text(f' you say : {user_message}')
# line 9 --> 11 : send user message to admin :)
#.................................................................................................................
def main () :
application = ApplicationBuilder().token(TOKEN).build()
application.add_handler(CommandHandler('start' , start))
application.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND , echo))
# line 13 --> 16 : build start massage , filter sended message
#.....................................................................................................................
print ('robot is running :)')
application.run_polling()
if __name__ == '__main__' :
main()
# line 18 --> 22 : run robot
#........................................................................................................................
ران که میکنم اولش اوکیه و پیغام running که نوشتم انجام میشه ، اما یکهو در لاین 1200 یا 960 ارور های بی ربطی میده و ربات کار نمیکنه ، IDE که کار میکنم VScode هست و از قسمت اول مو به مو کارها رو انجام دادم و حتی یک کد رو هم تغیییر ندادم . . . .
مطمئن شوید که از نسخه درست استفاده میکنید. کد شما از ApplicationBuilder و ContextTypes استفاده کرده که برای نسخه 20 به بعد هست.
برای بررسی نسخه فعلی، در ترمینال بنویسید:
pip show python-telegram-bot
اگر نسخه قدیمی است، این دستور برای بروزرسانی استفاده کنید:
pip install python-telegram-bot --upgrade
استفاده از await و async:
در نسخه 20 به بالا باید همه هندلرها async def باشند و توابع await به درستی استفاده شوند. که در کد شما رعایت شده.
در ترمینال VSCode این دستو رو بزنید : python filename.py
و در تلگرام /start را بفرستید، ببینید آیا جواب میدهد یا نه.
گاهی خطاهای تلگرام در dispatcher هندلرها رخ میدهند و بهتر است لاگ آنها را ببینید. برای این کار میتوانید هندلر لاگ اضافه کنید:
import logging
logging.basicConfig(
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
level=logging.INFO
)
و این را در ابتدای کد بگذارید. اگر اروری اتفاق بیفتد در ترمینال ثبت میشود.
پیشنهاد میکنم کدت رو با پای چارم هم تست کنی