Помогите с ошибкой в коде.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
Почему то выдает ошибку:
Возникло исключение: 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()
По дате
По рейтингу
Ну так открой документацию на telegram.ext и посмотри, сколько параметров должен иметь вызов Updater. Тебе же прямым английским языком пишут, что отсутствует обязательный параметр. Т.е. одного только TOKEN в вызове Updater(TOKEN) недостаточно, должно быть что-то ещё.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546
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())
токен тг бота спалил
Убедитесь, что вы установили нужную версию библиотеки python-telegram-bot. Вы можете сделать это с помощью команды:
12
pip install python-telegram-bot --upgrade
Больше по теме