Waleed Alomar نشر 12 أكتوبر 2023 أرسل تقرير نشر 12 أكتوبر 2023 هذا الكود عبارة عن بوت تلغرام ويظهر هذا الخطا مع اني قمت بتحديث المكتبة ومازال يظهر from telegram import Update, InlineKeyboardButton, InlineKeyboardMarkup from telegram.ext import Updater, CommandHandler, CallbackContext, CallbackQueryHandler, ConversationHandler, MessageHandler # استبدل "YOUR_TOKEN" بمفتاح الوصول الخاص ببوتك TOKEN = "6660967112:AAFV_U36jt5u5hOdBfaPD38ozk1jg8GXyUE" # تعريف حالات المحادثة START, MY_ACCOUNT, WITHDRAW, ADD_TASK = range(4) # دالة تعيد زرين داخل زر واحد (زر الرجوع) def back_button(): button = InlineKeyboardButton("رجوع", callback_data="back") keyboard = [[button]] return InlineKeyboardMarkup(keyboard) # دالة تقوم بإرسال رسالة ترحيبية وزر "حسابي" def start(update: Update, context: CallbackContext): user_id = update.message.chat_id update.message.reply_text( f"مرحبًا {update.effective_user.first_name}!", reply_markup=main_menu_keyboard(), ) return START # دالة تقوم بإنشاء وإرسال قائمة الزرز الرئيسية def main_menu_keyboard(): keyboard = [ [ InlineKeyboardButton("حسابي", callback_data="my_account"), ], [ InlineKeyboardButton("بدء المهام", callback_data="start_tasks"), InlineKeyboardButton("إضافة مهمة", callback_data="add_task"), ], ] return InlineKeyboardMarkup(keyboard) # دالة تقوم بالتعامل مع زر "حسابي" def my_account(update: Update, context: CallbackContext): query = update.callback_query query.answer() query.edit_message_text( text="حسابي - اختر واحدة:", reply_markup=my_account_menu_keyboard(), ) return MY_ACCOUNT # دالة تقوم بإنشاء وإرسال قائمة الزرز داخل "حسابي" def my_account_menu_keyboard(): keyboard = [ [ InlineKeyboardButton("سحب الرصيد", callback_data="withdraw"), InlineKeyboardButton("مهامي المضافة", callback_data="added_tasks"), ], [back_button()], ] return InlineKeyboardMarkup(keyboard) # دالة تقوم بالتعامل مع زر "سحب الرصيد" def withdraw(update: Update, context: CallbackContext): query = update.callback_query query.answer() query.edit_message_text(text="قم بتنفيذ عملية سحب الرصيد هنا.") return WITHDRAW # دالة تقوم بالتعامل مع زر "مهامي المضافة" def added_tasks(update: Update, context: CallbackContext): query = update.callback_query query.answer() query.edit_message_text(text="قائمة مهامك المضافة.") return MY_ACCOUNT # دالة تقوم بالتعامل مع زر "بدء المهام" def start_tasks(update: Update, context: CallbackContext): query = update.callback_query query.answer() query.edit_message_text(text="بدء تنفيذ المهام.") return START # دالة تقوم بالتعامل مع زر "إضافة مهمة" def add_task(update: Update, context: CallbackContext): query = update.callback_query query.answer() query.edit_message_text(text="قم بإضافة مهمة جديدة.") return ADD_TASK # دالة تقوم بالتعامل مع زر الرجوع def back(update: Update, context: CallbackContext): query = update.callback_query query.answer() query.edit_message_text( text="مرحبًا مجددًا!", reply_markup=main_menu_keyboard(), ) return START # دالة تقوم بالتعامل مع الأوامر المرسلة def handle_text(update: Update, context: CallbackContext): text = update.message.text update.message.reply_text(f"لقد تلقيت الرسالة: {text}") # الدالة الرئيسية لتشغيل البوت def main(): updater = Updater(TOKEN, use_context=True) dispatcher = updater.dispatcher # إضافة معالجات الأزرار dispatcher.add_handler(CommandHandler('start', start)) dispatcher.add_handler(CallbackQueryHandler(my_account, pattern='^my_account$')) dispatcher.add_handler(CallbackQueryHandler(withdraw, pattern='^withdraw$')) dispatcher.add_handler(CallbackQueryHandler(added_tasks, pattern='^added_tasks$')) dispatcher.add_handler(CallbackQueryHandler(start_tasks, pattern='^start_tasks$')) dispatcher.add_handler(CallbackQueryHandler(add_task, pattern='^add_task$')) dispatcher.add_handler(CallbackQueryHandler(back, pattern='^back$')) dispatcher.add_handler(MessageHandler(None, handle_text)) updater.start_polling() updater.idle() if __name__ == '__main__': main() الخطا الذي يظهر هذا Traceback (most recent call last): File "c:\Users\DELL\Desktop\مجلد جديد\fff.py", line 121, in <module> main() File "c:\Users\DELL\Desktop\مجلد جديد\fff.py", line 104, in main updater = Updater(TOKEN, use_context=True) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ TypeError: Updater.__init__() got an unexpected keyword argument 'use_context' PS C:\Users\DELL\Desktop\مجلد جديد> 1 اقتباس
0 عمار معلا نشر 12 أكتوبر 2023 أرسل تقرير نشر 12 أكتوبر 2023 المشكلة الموجودة في الكود هو Updater لا يوجد لديه متحول بالاسم use_context، مع ذلك حتى لو قمت بحذفها سوف يعطي خطأ، ينتج هذا الخطأ من استخدامك لنسخة telegram بإصدار اقل من 13، لكن انصحك باستخدام الاصدار 20 الاحدث من المكتبة قم بالبداية بإلغاء تثبيت المكتبة على جهازك ثم قم بتثبيت الاصدار الاحدث عبر التعليمة pip install python-telegram-bot==20.6 ثم يمكنك الاطلاع إلى دليل الاصدار 20 من هنا، ويمكنك تصحيح كودك كالاتي: بدلا من استخدام dispatcher ,udpater يمكنك تعريف application وتحديد جميع المتحولات فيه، الكود التالي قم بحذفه من كودك updater = Updater(TOKEN, use_context=True) dispatcher = updater.dispatcher ليصبح الاتي حيث تم استدعاء application from telegram.ext import Application # <---ضعه في الأعلى application = Application.builder().token(TOKEN).build() استبدل كل سطر يحوي الكلمة dispatcher بالكلمة application كالاتي dispatcher.add_handler(CommandHandler('start', start)) dispatcher.add_handler(CallbackQueryHandler(my_account, pattern='^my_account$')) dispatcher.add_handler(CallbackQueryHandler(withdraw, pattern='^withdraw$')) . . . ليصبح application.add_handler(CommandHandler('start', start)) application.add_handler(CallbackQueryHandler(my_account, pattern='^my_account$')) application.add_handler(CallbackQueryHandler(withdraw, pattern='^withdraw$')) . . . استبدل الاسطر الخاصة بتشغيل التطبيق dispatcher.start_polling() dispatcher.idle() بالاتي application.start_polling() في النهاية كامل التعديلات في الكود كالاتي # الدالة الرئيسية لتشغيل البوت def main(): application = Application.builder().token(TOKEN).build() # dispatcher = updater.dispatcher #إضافة معالجات الأزرار إلى التطبيق application.add_handler(CommandHandler('start', start)) application.add_handler(CallbackQueryHandler(my_account, pattern='^my_account$')) application.add_handler(CallbackQueryHandler(withdraw, pattern='^withdraw$')) application.add_handler(CallbackQueryHandler(added_tasks, pattern='^added_tasks$')) application.add_handler(CallbackQueryHandler(start_tasks, pattern='^start_tasks$')) application.add_handler(CallbackQueryHandler(add_task, pattern='^add_task$')) application.add_handler(CallbackQueryHandler(back, pattern='^back$')) application.add_handler(MessageHandler(None, handle_text)) #تشغيل التطبيق application.start_polling() لا تنسى استدعاء Application كما وضحت سابقا 1 اقتباس
0 Waleed Alomar نشر 12 أكتوبر 2023 الكاتب أرسل تقرير نشر 12 أكتوبر 2023 بتاريخ 3 ساعة قال عمار معلا: لا تنسى استدعاء Application كما وضحت سابقا شكرا لك صديقي اقتباس
0 Waleed Alomar نشر 12 أكتوبر 2023 الكاتب أرسل تقرير نشر 12 أكتوبر 2023 بتاريخ 4 ساعة قال عمار معلا: #تشغيل التطبيق application.start_polling() السلام عليكم لقد قمت بتعديل الكود ولكن ظهر لي هذا الخطا هل من الممكن المساعدة مرة اخرة لو سمحت from telegram import Update, InlineKeyboardButton, InlineKeyboardMarkup from telegram.ext import Updater, CommandHandler, CallbackContext, CallbackQueryHandler, ConversationHandler, MessageHandler from telegram.ext import Application # <---ضعه في الأعلى # استبدل "YOUR_TOKEN" بمفتاح الوصول الخاص ببوتك TOKEN = "6660967112:AAFV_U36jt5u5hOdBfaPD38ozk1jg8GXyUE" # تعريف حالات المحادثة START, MY_ACCOUNT, WITHDRAW, ADD_TASK = range(4) # دالة تعيد زرين داخل زر واحد (زر الرجوع) def back_button(): button = InlineKeyboardButton("رجوع", callback_data="back") keyboard = [[button]] return InlineKeyboardMarkup(keyboard) # دالة تقوم بإرسال رسالة ترحيبية وزر "حسابي" def start(update: Update, context: CallbackContext): user_id = update.message.chat_id update.message.reply_text( f"مرحبًا {update.effective_user.first_name}!", reply_markup=main_menu_keyboard(), ) return START # دالة تقوم بإنشاء وإرسال قائمة الزرز الرئيسية def main_menu_keyboard(): keyboard = [ [ InlineKeyboardButton("حسابي", callback_data="my_account"), ], [ InlineKeyboardButton("بدء المهام", callback_data="start_tasks"), InlineKeyboardButton("إضافة مهمة", callback_data="add_task"), ], ] return InlineKeyboardMarkup(keyboard) # دالة تقوم بالتعامل مع زر "حسابي" def my_account(update: Update, context: CallbackContext): query = update.callback_query query.answer() query.edit_message_text( text="حسابي - اختر واحدة:", reply_markup=my_account_menu_keyboard(), ) return MY_ACCOUNT # دالة تقوم بإنشاء وإرسال قائمة الزرز داخل "حسابي" def my_account_menu_keyboard(): keyboard = [ [ InlineKeyboardButton("سحب الرصيد", callback_data="withdraw"), InlineKeyboardButton("مهامي المضافة", callback_data="added_tasks"), ], [back_button()], ] return InlineKeyboardMarkup(keyboard) # دالة تقوم بالتعامل مع زر "سحب الرصيد" def withdraw(update: Update, context: CallbackContext): query = update.callback_query query.answer() query.edit_message_text(text="قم بتنفيذ عملية سحب الرصيد هنا.") return WITHDRAW # دالة تقوم بالتعامل مع زر "مهامي المضافة" def added_tasks(update: Update, context: CallbackContext): query = update.callback_query query.answer() query.edit_message_text(text="قائمة مهامك المضافة.") return MY_ACCOUNT # دالة تقوم بالتعامل مع زر "بدء المهام" def start_tasks(update: Update, context: CallbackContext): query = update.callback_query query.answer() query.edit_message_text(text="بدء تنفيذ المهام.") return START # دالة تقوم بالتعامل مع زر "إضافة مهمة" def add_task(update: Update, context: CallbackContext): query = update.callback_query query.answer() query.edit_message_text(text="قم بإضافة مهمة جديدة.") return ADD_TASK # دالة تقوم بالتعامل مع زر الرجوع def back(update: Update, context: CallbackContext): query = update.callback_query query.answer() query.edit_message_text( text="مرحبًا مجددًا!", reply_markup=main_menu_keyboard(), ) return START # دالة تقوم بالتعامل مع الأوامر المرسلة def handle_text(update: Update, context: CallbackContext): text = update.message.text update.message.reply_text(f"لقد تلقيت الرسالة: {text}") # الدالة الرئيسية لتشغيل البوت def main(): application = Application.builder().token(TOKEN).build() #إضافة معالجات الأزرار إلى التطبيق application.add_handler(CommandHandler('start', start)) application.add_handler(CallbackQueryHandler(my_account, pattern='^my_account$')) application.add_handler(CallbackQueryHandler(withdraw, pattern='^withdraw$')) application.add_handler(CallbackQueryHandler(added_tasks, pattern='^added_tasks$')) application.add_handler(CallbackQueryHandler(start_tasks, pattern='^start_tasks$')) application.add_handler(CallbackQueryHandler(add_task, pattern='^add_task$')) application.add_handler(CallbackQueryHandler(back, pattern='^back$')) application.add_handler(MessageHandler(None, handle_text)) #تشغيل التطبيق application.start_polling() if __name__ == '__main__': main() اقتباس
0 عمار معلا نشر 12 أكتوبر 2023 أرسل تقرير نشر 12 أكتوبر 2023 بتاريخ 5 دقائق مضت قال Waleed Alomar: هل من الممكن المساعدة مرة اخرة لو سمحت عذرا على الخطأ فقط ضع مكان كلمة start_polling الكلمة run_polling 1 اقتباس
السؤال
Waleed Alomar
هذا الكود عبارة عن بوت تلغرام ويظهر هذا الخطا
مع اني قمت بتحديث المكتبة ومازال يظهر
from telegram import Update, InlineKeyboardButton, InlineKeyboardMarkup from telegram.ext import Updater, CommandHandler, CallbackContext, CallbackQueryHandler, ConversationHandler, MessageHandler # استبدل "YOUR_TOKEN" بمفتاح الوصول الخاص ببوتك TOKEN = "6660967112:AAFV_U36jt5u5hOdBfaPD38ozk1jg8GXyUE" # تعريف حالات المحادثة START, MY_ACCOUNT, WITHDRAW, ADD_TASK = range(4) # دالة تعيد زرين داخل زر واحد (زر الرجوع) def back_button(): button = InlineKeyboardButton("رجوع", callback_data="back") keyboard = [[button]] return InlineKeyboardMarkup(keyboard) # دالة تقوم بإرسال رسالة ترحيبية وزر "حسابي" def start(update: Update, context: CallbackContext): user_id = update.message.chat_id update.message.reply_text( f"مرحبًا {update.effective_user.first_name}!", reply_markup=main_menu_keyboard(), ) return START # دالة تقوم بإنشاء وإرسال قائمة الزرز الرئيسية def main_menu_keyboard(): keyboard = [ [ InlineKeyboardButton("حسابي", callback_data="my_account"), ], [ InlineKeyboardButton("بدء المهام", callback_data="start_tasks"), InlineKeyboardButton("إضافة مهمة", callback_data="add_task"), ], ] return InlineKeyboardMarkup(keyboard) # دالة تقوم بالتعامل مع زر "حسابي" def my_account(update: Update, context: CallbackContext): query = update.callback_query query.answer() query.edit_message_text( text="حسابي - اختر واحدة:", reply_markup=my_account_menu_keyboard(), ) return MY_ACCOUNT # دالة تقوم بإنشاء وإرسال قائمة الزرز داخل "حسابي" def my_account_menu_keyboard(): keyboard = [ [ InlineKeyboardButton("سحب الرصيد", callback_data="withdraw"), InlineKeyboardButton("مهامي المضافة", callback_data="added_tasks"), ], [back_button()], ] return InlineKeyboardMarkup(keyboard) # دالة تقوم بالتعامل مع زر "سحب الرصيد" def withdraw(update: Update, context: CallbackContext): query = update.callback_query query.answer() query.edit_message_text(text="قم بتنفيذ عملية سحب الرصيد هنا.") return WITHDRAW # دالة تقوم بالتعامل مع زر "مهامي المضافة" def added_tasks(update: Update, context: CallbackContext): query = update.callback_query query.answer() query.edit_message_text(text="قائمة مهامك المضافة.") return MY_ACCOUNT # دالة تقوم بالتعامل مع زر "بدء المهام" def start_tasks(update: Update, context: CallbackContext): query = update.callback_query query.answer() query.edit_message_text(text="بدء تنفيذ المهام.") return START # دالة تقوم بالتعامل مع زر "إضافة مهمة" def add_task(update: Update, context: CallbackContext): query = update.callback_query query.answer() query.edit_message_text(text="قم بإضافة مهمة جديدة.") return ADD_TASK # دالة تقوم بالتعامل مع زر الرجوع def back(update: Update, context: CallbackContext): query = update.callback_query query.answer() query.edit_message_text( text="مرحبًا مجددًا!", reply_markup=main_menu_keyboard(), ) return START # دالة تقوم بالتعامل مع الأوامر المرسلة def handle_text(update: Update, context: CallbackContext): text = update.message.text update.message.reply_text(f"لقد تلقيت الرسالة: {text}") # الدالة الرئيسية لتشغيل البوت def main(): updater = Updater(TOKEN, use_context=True) dispatcher = updater.dispatcher # إضافة معالجات الأزرار dispatcher.add_handler(CommandHandler('start', start)) dispatcher.add_handler(CallbackQueryHandler(my_account, pattern='^my_account$')) dispatcher.add_handler(CallbackQueryHandler(withdraw, pattern='^withdraw$')) dispatcher.add_handler(CallbackQueryHandler(added_tasks, pattern='^added_tasks$')) dispatcher.add_handler(CallbackQueryHandler(start_tasks, pattern='^start_tasks$')) dispatcher.add_handler(CallbackQueryHandler(add_task, pattern='^add_task$')) dispatcher.add_handler(CallbackQueryHandler(back, pattern='^back$')) dispatcher.add_handler(MessageHandler(None, handle_text)) updater.start_polling() updater.idle() if __name__ == '__main__': main()
الخطا الذي يظهر هذا
Traceback (most recent call last):
File "c:\Users\DELL\Desktop\مجلد جديد\fff.py", line 121, in <module>
main()
File "c:\Users\DELL\Desktop\مجلد جديد\fff.py", line 104, in main
updater = Updater(TOKEN, use_context=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: Updater.__init__() got an unexpected keyword argument 'use_context'
PS C:\Users\DELL\Desktop\مجلد جديد>
4 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.