Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите с ошибкой в коде.

Илья Волков Ученик (93), открыт 3 недели назад
 Почему то выдает ошибку:
Возникло исключение: TypeError
Updater.__init__() missing 1 required positional argument: 'update_queue'
File "D:\Илья\Программы для Код будущего\Случайные картинки природы.py", line 35, in main
updater =Updater(TOKEN)
^^^^^^^^^^^^^^
File "D:\Илья\Программы для Код будущего\Случайные картинки природы.py", line 50, in <module>
main()
TypeError: Updater.__init__() missing 1 required positional argument: 'update_queue'


import os
import random
import requests
from telegram import Update
from telegram.ext import Updater, CommandHandler, CallbackContext

# Ваш токен бота
TOKEN = '7167582863:AAF0fM2TbZNVCySBmEWBzbZWosZBkLXmCWs'

# Функция для получения случайной фотографии природы
def get_random_nature_photo():
# URL для получения случайного изображения с Unsplash API
url = "https://source.unsplash.com/featured/?nature"

# Получаем изображение по URL
response = requests.get(url)

if response.status_code == 200:
return response.url
else:
return None

# Функция-обработчик команды /nature
def nature(update: Update, context: CallbackContext) -> None:
photo_url = get_random_nature_photo()

if photo_url:
context.bot.send_photo(chat_id=update.effective_chat.id, photo=photo_url)
else:
update.message.reply_text("Не удалось получить изображение. Попробуйте позже.")

# Основная функция
def main():
# Создаем объект Updater и передаем ему токен
updater =Updater(TOKEN)

# Получаем диспетчер для регистрации обработчиков
dp = updater.dispatcher

# Регистрация обработчика команды /nature
dp.add_handler(CommandHandler("nature", nature))

# Запускаем бота
updater.start_polling()

# Ожидаем завершения
updater.idle()

if __name__ == '__main__':
main()
4 ответа
Иван Козлов Мыслитель (8748) 3 недели назад
Убедитесь, что вы установили нужную версию библиотеки python-telegram-bot. Вы можете сделать это с помощью команды:
 pip install python-telegram-bot --upgrade 
Kiber Dan Ученик (185) 3 недели назад
токен тг бота спалил
Андрей Высший разум (462293) 3 недели назад
Ну так открой документацию на telegram.ext и посмотри, сколько параметров должен иметь вызов Updater. Тебе же прямым английским языком пишут, что отсутствует обязательный параметр. Т.е. одного только TOKEN в вызове Updater(TOKEN) недостаточно, должно быть что-то ещё.
Sergio 2.1 Оракул (67665) 3 недели назад
 import os 
import random
import requests
from telegram import Update
from telegram.ext import Application, CommandHandler, ContextTypes

# Ваш токен бота
TOKEN = '7167582863:AAF0fM2TbZNVCySBmEWBzbZWosZBkLXmCWs'

# Функция для получения случайной фотографии природы
def get_random_nature_photo():
# URL для получения случайного изображения с Unsplash API
url = ""

# Получаем изображение по URL
response = requests.get(url)

if response.status_code == 200:
return response.url
else:
return None

# Функция-обработчик команды /nature
async def nature(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
photo_url = get_random_nature_photo()

if photo_url:
await update.message.reply_photo(photo=photo_url)
else:
await update.message.reply_text("Не удалось получить изображение. Попробуйте позже.")

# Основная функция
async def main():
# Создаем приложение
application = Application.builder().token(TOKEN).build()

# Регистрация обработчика команды /nature
application.add_handler(CommandHandler("nature", nature))

# Запускаем бота
await application.run_polling()

if __name__ == '__main__':
import asyncio
asyncio.run(main())
Похожие вопросы