Ответы пользователя по тегу TeleBot
  • Что делать, если бот не хочет читать сообщение пользователя?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Попробуйте так:
    @bot.message_handler(commands=['sg'])
    def sg(message):
        msg = bot.send_message(message.chat.id, 'Великолепно, приступим... Начнем с знакомства! Как тебя зовут (Хватит Фамилии и Имени)')
        bot.register_next_step_handler(msg, process_name_step)
    
    def process_name_step(message):
        name = message.text
        bot.send_message(message.chat.id, f'Приятно познакомиться, {name}!')
    Ответ написан
    1 комментарий
  • Почему не работает callback второй раз?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    - Зачем светить своим токеном?
    - Зачем 2 раза объявлять одну и туже функцию callback_message?
    - Внутри функции callback_message Вы использовали callback.message.chat.id для отправки сообщений, но callback.message является ссылкой на сообщение, которое инициировало callback, а не на сообщение, которое нужно отправить.
    - А как же обработка callback_data cadastral?
    - message.message_id минус 0?
    import telebot
    from telebot import types
    
    bot = telebot.TeleBot('token')
    file = open('./start1.jpg', 'rb')
    
    @bot.message_handler(commands=['start'])
    def start(message):
        markup = types.InlineKeyboardMarkup()
        markup.add(types.InlineKeyboardButton('Оценка', url='https://google.com'))
        markup.add(types.InlineKeyboardButton('Кадастровые работы', callback_data='cadastral'))
        markup.add(types.InlineKeyboardButton('Строительные экспертизы', callback_data='expertise'))
        bot.send_photo(message.chat.id, file, 
                       caption='Здравствуйте, это Бот-помощник группы компаний "Стандарт Оценка", я помогу Вам определиться с нужной услугой, оформить заявку и связаться с администратором. Выберете желаемую услугу', 
                       reply_markup=markup)
    
    @bot.callback_query_handler(func=lambda call: True)
    def callback_message(call):
        if call.data == 'cadastral':
            bot.delete_message(call.message.chat.id, call.message.message_id)
            bot.send_message(call.message.chat.id, 'Введите свое ФИО')
            bot.register_next_step_handler(call.message, message_input_step)
        elif call.data == 'expertise':
            bot.send_message(call.message.chat.id, 'Вы выбрали Строительные экспертизы')
        elif call.data == 'all':
            bot.send_message(call.message.chat.id, 'Все данные верны')
    
    def message_input_step(message):
        global name
        name = message.text
        bot.send_message(message.chat.id, 'Введите свой номер телефона')
        bot.register_next_step_handler(message, phone)
    
    def phone(message):
        global phone
        phone = message.text
        markup = types.InlineKeyboardMarkup()
        markup.add(types.InlineKeyboardButton('Все верно✅', callback_data='all'))
        markup.add(types.InlineKeyboardButton('Начать сначало❌', callback_data='cadastral'))
        bot.send_message(message.chat.id, f'Ваше ФИО: {name}\nВаш номер телефона: {phone}', reply_markup=markup)
    
    if __name__ == "__main__":
        bot.polling(none_stop=True)
    Ответ написан
    3 комментария
  • При передаче информации в sqlite3 из бота в телеге ошибка near ",": syntax error, в чем причина?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    # cursor.execute(f'INSERT INTO sausages (user_name, product_type, product_type_amount) VALUES ({user_name}, {product_type}, {product_type_amount})')
    cursor.execute('INSERT INTO sausages (user_name, product_type, product_type_amount) VALUES (?, ?, ?)', (user_name, product_type, product_type_amount))

    Почему не стоит использовать f строки в SQL Python запросах?
    Ответ написан
    1 комментарий
  • Почему не работает код бота telebot?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    item2 = types.KeyboardButton(text="Семья в России"),

    Уберите запятые в конце строк, чтобы не было проблем с кортежами.

    bot.reply_to это откуда? По идее, должно быть bot.send_message, исправил код, допишите все нужные кнопки и попробуйте, должно заработать:
    @bot.message_handler(commands=["start"])
    def start(message):
        keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True, row_width=2)
        item1 = types.KeyboardButton(text="Основные документы гражданина Российской Федерации")
        # прочее...
    
        keyboard.add(item1, item2)
        # прочее...
    
        bot.send_message(
            message.chat.id,
            f"Привет",
            f"{message.from_user.first_name}! Я бот, который поможет тебе. Что ты хочешь узнать..?",
            reply_markup=keyboard)
    Ответ написан
    1 комментарий
  • Почему не получается заполнить базу данных sqlite через телеграмм бота?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    У Вас создается таблица login_id, но затем, Вы используете user_id... Так же, в таблице всего 1 столбец id, так и задумано?
    Ответ написан
    1 комментарий
  • Как захостить телеграм бота на хостинге для сайтов?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Изучив их руководство? Спросить у их поддержки?
    Вот их пример установки Django, делайте так же, только Django не ставьте.
    Ответ написан
    Комментировать
  • Почему бот дважды выполняет команду (telebot)?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Почему бот дважды выполняет команду (telebot)?

    Присмотритесь внимательнее на свой код, в цикле происходит отправка одного и того же сообщения столько раз, сколько пользователей в чате (дважды, если пользователей в чате тоже двое):
    for user in range(users):
        try:
            bot.send_message(message.chat.id, msg)
    Ответ написан
  • Почему возникает ошибка "got an unexpected keyword argument 'use_context'"?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    TypeError: Updater.__init__() got an unexpected keyword argument 'use_context'

    use_context не поддерживается в качестве аргумента для python-telegram-bot.
    есть люди кто мог бы пояснить что я делаю не так

    Можно просто прочитать ошибку...
    Ответ написан
    8 комментариев
  • Как убрать ошибку в боте?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    TypeError
    'NoneType' object is not subscriptable
    File "C:\Users\Administrator\Desktop\Bot\Bot.py", line 21, in handle_message
    photo=message.photo[-1] # Сохранение фото на ваш компьютер
    File "C:\Users\Administrator\Desktop\Bot\Bot.py", line 35, in
    bot.polling()
    TypeError: 'NoneType' object is not subscriptable

    Грешно обращаться к Null, как к списку или словарю. Добавьте проверку:
    if message.photo:
        photo = message.photo[-1]
        # other code
    else:
        bot.reply_to(message, 'Гони фотку.')
    Ответ написан
    Комментировать
  • Что делать, если телеграм бот на питоне открывает ссылку на другом устройстве?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Ссылка будет открываться на том компе, на котором запущен скрипт. Нужно отправлять ссылку сообщением в телегу, например:
    import telebot
    
    token = "TOKEN"
    bot = telebot.TeleBot(token)
    
    @bot.message_handler(commands=['website'])
    def send_video_link(message):
        # url
        video_url = 'https://www.youtube.com/watch?v=dQw4w9WgXcQ&ab_channel=RickAstley'
        bot.send_message(message.chat.id, video_url)
    
    @bot.message_handler(commands=['start'])
    def send_welcome_message(message):
        user_name = message.from_user.first_name
        welcome_message = (
            f'Привет, {user_name}!\n'
            'Я с радостью поделюсь с тобой всей статистикой чемпионата F1. Просто отправь запрос!\n'
            'Введи /help, если возникнут вопросы'
        )
        bot.send_message(message.chat.id, welcome_message)
    
    # run bot
    bot.infinity_polling()
    Ответ написан
    1 комментарий