Найти - Пользователи
Полная версия: Запрос chat_id телеграмм-бота
Начало » Python для новичков » Запрос chat_id телеграмм-бота
1 2
py.user.next
Konstantin1984+, ты когда пишешь что-то, ты сразу публикуй здесь код полностью, который ты запускаешь в данный конкретный момент. Не надо экономить буквы. Потому что есть большие подозрения, что ты даже код нормально сделать не можешь и любое твоё исправление может порождать миллион ошибок в нём, которых в нём раньше не было.

Konstantin1984+
Вставляю полный текст сообщения телеграм-бота
Вот и опубликуй здесь код, который это делает. Потому что эти слова для читателей не значат ни-че-го вообще.

Вот этот фрагмент кода очень красноречиво говорит о твоих способностях
Konstantin1984+
  
url = f"https://api.telegram.org/bot{'токен_бота'}/getUpdates"
Так что давай, публикуй сами коды, чтобы тебе хотя бы советы могли давать по ним.

И, надеюсь, этот токен от тестового бота, а не от реального.
Konstantin1984+
Так вот весь код, он простой весьма. Только файлы не грузятся, потому что я 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)
py.user.next
Теперь в этот код внеси вот эти измения. Код с изменениями запусти и получи результат. Код с изменениями отправь сюда опять и результат, полученный от него, отправь сюда тоже.

Дальше ещё такое указание: убери в url f перед строкой и вставь туда токен просто напрямую без кавычек и фигурных скобок. При отправке сюда токен можешь так же замаскировать (главное, чтобы было видно, куда ты его поставил).

Все коды, которые у тебя получаются в результате изменений, отправляй сюда в точном виде.
Konstantin1984+
Вот код:

 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+
А вот ответ бота:

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
py.user.next
Теперь в этот код внеси вот эти измения
  
    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')
Код с изменениями запусти и получи результат. Код с изменениями отправь сюда опять и результат, полученный от него, отправь сюда тоже.

Результат вставь не просто на форум как текст, а используй тег code без указания языка и вставь результат внутри этого тега.
вот так должно выглядеть это, в белом прямоугольнике
ZerG
после того как вставил ответ оберни его в тег код скорее всего там скобки которые считываются как то иначе
xam1816
  
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 то так
  
chat_id=message.chat.id
Konstantin1984+
Спасибо всем! Загрузка пошла.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB