• 1404/02/13

ارور های عجیب در تعداد خطوط عجیب !!! :

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 هست و از قسمت اول مو به مو کارها رو انجام دادم و حتی یک کد رو هم تغیییر ندادم . . . . 

  • 1404/02/13
  • ساعت 10:34

مطمئن شوید که از نسخه درست استفاده می‌کنید. کد شما از 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
)

و این را در ابتدای کد بگذارید. اگر اروری اتفاق بیفتد در ترمینال ثبت می‌شود.

 

 

 

 


  • 1404/02/13
  • ساعت 10:37

پیشنهاد میکنم کدت رو با پای چارم هم تست کنی


logo-enamadlogo-samandehi