Форум сайта python.su
Konstantin1984+, ты когда пишешь что-то, ты сразу публикуй здесь код полностью, который ты запускаешь в данный конкретный момент. Не надо экономить буквы. Потому что есть большие подозрения, что ты даже код нормально сделать не можешь и любое твоё исправление может порождать миллион ошибок в нём, которых в нём раньше не было.
Konstantin1984+Вот и опубликуй здесь код, который это делает. Потому что эти слова для читателей не значат ни-че-го вообще.
Вставляю полный текст сообщения телеграм-бота
Konstantin1984+Так что давай, публикуй сами коды, чтобы тебе хотя бы советы могли давать по ним.url = f"https://api.telegram.org/bot{'токен_бота'}/getUpdates"
Отредактировано py.user.next (Май 28, 2023 20:29:37)
Офлайн
Так вот весь код, он простой весьма. Только файлы не грузятся, потому что я chat_id не могу узнать.
Строка “print(requests.get(url).json())” должна предоставить chat_id, после чего стирается. А токен я указал в предыдущем сообщении от ранее удаленного бота (хотя, наверное, его не стоит светить, прошу удалить упоминание о нем)
import telebot bot = telebot.TeleBot('мой токен') import requests url = f"https://api.telegram.org/bot{'мой токен'}/getUpdates" @bot.message_handler(content_types=['text']) def get_text_messages(message): if message.text == "Привет": bot.send_message(message.from_user.id, "Привет, какой файл загрузить?") elif message.text == "1": bot.send_document(chat_id='нужно узнать', document=open('1.odt', 'rb') elif message.text == "/help": bot.send_message(message.from_user.id, "Напиши привет") else: bot.send_message(message.from_user.id, "Я тебя не понимаю. Напиши /help.") print(requests.get(url).json()) bot.polling(none_stop=True, interval=0)
Отредактировано Konstantin1984+ (Май 28, 2023 20:24:49)
Офлайн
Теперь в этот код внеси вот эти измения. Код с изменениями запусти и получи результат. Код с изменениями отправь сюда опять и результат, полученный от него, отправь сюда тоже.
Дальше ещё такое указание: убери в url f перед строкой и вставь туда токен просто напрямую без кавычек и фигурных скобок. При отправке сюда токен можешь так же замаскировать (главное, чтобы было видно, куда ты его поставил).
Все коды, которые у тебя получаются в результате изменений, отправляй сюда в точном виде.
Отредактировано py.user.next (Май 28, 2023 20:35:34)
Офлайн
Вот код:
import telebot bot = telebot.TeleBot('мой токен') import requests url = 'https://api.telegram.org/bot мой токен /getUpdates' @bot.message_handler(content_types=['text']) def get_text_messages(message): if message.text == "Привет": bot.send_message(message.from_user.id, "Привет, какой файл загрузить?") elif message.text == "1": #bot.send_document(chat_id=chat_id, document=open('1.odt', 'rb')) bot.send_message(message.from_user.id, 'start' + str(dir(message)) + 'end') elif message.text == "/help": bot.send_message(message.from_user.id, "Напиши привет") else: bot.send_message(message.from_user.id, "Я тебя не понимаю. Напиши /help.") print(requests.get(url).json()) bot.polling(none_stop=True, interval=0)
Отредактировано Konstantin1984+ (Май 28, 2023 23:03:47)
Офлайн
А вот ответ бота:
start['_Message__html_text', ‘__class__’, ‘__delattr__’, ‘__dict__’, ‘__dir__’, ‘__doc__’, ‘__eq__’, ‘__format__’, ‘__ge__’, ‘__getattribute__’, ‘__gt__’, ‘__hash__’, ‘__init__’, ‘__init_subclass__’, ‘__le__’, ‘__lt__’, ‘__module__’, ‘__ne__’, ‘__new__’, ‘__reduce__’, ‘__reduce_ex__’, ‘__repr__’, ‘__setattr__’, ‘__sizeof__’, ‘__str__’, ‘__subclasshook__’, ‘__weakref__’, ‘animation’, ‘audio’, ‘author_signature’, ‘caption’, ‘caption_entities’, ‘channel_chat_created’, ‘chat’, ‘check_json’, ‘connected_website’, ‘contact’, ‘content_type’, ‘date’, ‘de_json’, ‘delete_chat_photo’, ‘dice’, ‘document’, ‘edit_date’, ‘entities’, ‘forum_topic_closed’, ‘forum_topic_created’, ‘forum_topic_edited’, ‘forum_topic_reopened’, ‘forward_date’, ‘forward_from’, ‘forward_from_chat’, ‘forward_from_message_id’, ‘forward_sender_name’, ‘forward_signature’, ‘from_user’, ‘general_forum_topic_hidden’, ‘general_forum_topic_unhidden’, ‘group_chat_created’, ‘has_media_spoiler’, ‘has_protected_content’, ‘html_caption’, ‘html_text’, ‘id’, ‘invoice’, ‘is_automatic_forward’, ‘is_topic_message’, ‘json’, ‘left_chat_member’, ‘location’, ‘media_group_id’, ‘message_id’, ‘message_thread_id’, ‘migrate_from_chat_id’, ‘migrate_to_chat_id’, ‘new_chat_member’, ‘new_chat_members’, ‘new_chat_photo’, ‘new_chat_title’, ‘parse_chat’, ‘parse_entities’, ‘parse_photo’, ‘photo’, ‘pinned_message’, ‘reply_markup’, ‘reply_to_message’, ‘sender_chat’, ‘sticker’, ‘successful_payment’, ‘supergroup_chat_created’, ‘text’, ‘venue’, ‘via_bot’, ‘video’, ‘video_note’, ‘voice’, 'write_access_allowed']end
Отредактировано Konstantin1984+ (Май 28, 2023 23:14:24)
Офлайн
Теперь в этот код внеси вот эти измения
elif message.text == "1": #bot.send_document(chat_id=chat_id, document=open('1.odt', 'rb')) #bot.send_message(message.from_user.id, 'start' + str(dir(message)) + 'end') bot.send_message(message.from_user.id, 'start' + str(dir(message.chat)) + 'end')
вот так должно выглядеть это, в белом прямоугольнике
Отредактировано py.user.next (Май 29, 2023 11:16:48)
Офлайн
после того как вставил ответ оберни его в тег код скорее всего там скобки которые считываются как то иначе
Офлайн
import telebot with open('my_txt.txt', 'r') as f: my_token = f.read() # Создаем экземпляр бота bot = telebot.TeleBot(my_token) @bot.message_handler(content_types=['text']) def get_text_messages(message): if message.text == "Привет": bot.send_message(message.from_user.id, "Привет, какой файл загрузить?") elif message.text == "1": bot.send_document(chat_id=message.chat.id, document=open('test.txt', 'rb')) elif message.text == "/help": bot.send_message(message.from_user.id, "Напиши привет") else: bot.send_message(message.from_user.id, "Я тебя не понимаю. Напиши /help.") bot.polling(none_stop=True, interval=0)
chat_id=message.chat.id
Отредактировано xam1816 (Май 29, 2023 22:00:45)
Офлайн
Спасибо всем! Загрузка пошла.
Офлайн