Ответы пользователя по тегу Telegram
  • Телеграм бот. Не работает получение сообщений. В чем ошибка?

    Keffmen
    @Keffmen
    Изучаю Python , C# , HTML и многое другое
    Смотри тебе нужно было использовать bot.register_next_step в своем коде , вот пример как он работает
    import telebot
    import requests
    from telebot import types
    
    global stairs
    
    bot = telebot.TeleBot('token')
    @bot.message_handler(commands=["start"])
    def start(m, res=False):
        bot.send_message(m.chat.id, 'Хотите узнать погоду?\nВведите свой город')
        bot.register_next_step_handler_by_chat_id(m.chat.id, regist)
    @bot.message_handler(content_types=['text'])
    def main(m):
        if m.text.strip() == 'Текущая погода в городе':
            bot.send_message(m.chat.id, f'Сейчас в {stairs} - жарко')
    def regist(message):
        global stairs
        stairs = message.text
        bot.send_message(message.chat.id, f'Твой город :{message.text}')
    bot.polling(none_stop=True, interval=0)
    Ответ написан
    Комментировать
  • Почему не работает bot.register_next_step_handler?

    Keffmen
    @Keffmen
    Изучаю Python , C# , HTML и многое другое
    Я не сильно понимаю зачем делать через register_next_step_handler ? Но если сильно нужно поясняю! После выполнение этой строки register_next_step_handler бот ждет сообщения , и как только ты ему отправишь любое сообщение то он отреагирует на него
    def menu(message):
        markup = types.InlineKeyboardMarkup(row_width=3)
        item1 = types.InlineKeyboardButton("Привіт", callback_data='Hello')
        markup.add(item1)
        bot.send_message(message.chat.id, "Меню", parse_mode='html', reply_markup=markup)
    вот так !
    Если что то не понятно пиши Никита Булгак
    Ответ написан
    Комментировать
  • Как отправить сообщение с прикреплённым к нему изображением с помощь telebot?

    Keffmen
    @Keffmen
    Изучаю Python , C# , HTML и многое другое
    bot.send_photo(Кому отправить, Фото с компа , caption=А тут текст какой хочешь)
    Ответ написан
    Комментировать
  • Где в моём коде ошибка?

    Keffmen
    @Keffmen
    Изучаю Python , C# , HTML и многое другое
    import telebot
    from telebot import types
    
    BOT_TOKEN = твой токен
    bot = telebot.TeleBot(BOT_TOKEN)
    
    @bot.message_handler(commands=['start'])
    def start(message):
        markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
        btnn1 = types.KeyboardButton("Проверка")
        markup.add(btnn1)
        bot.send_message(message.chat.id, text="Здравствуйте!", reply_markup=markup)
    
    @bot.message_handler(content_types=['text'])
    def func(message):
        if message.text == "Проверка":
            markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
            btnn1 = types.KeyboardButton("Да, мне есть 18")
            btnn2 = types.KeyboardButton("Нет, мне нету 18")
            markup.add(btnn1, btnn2)
            bot.send_message(message.chat.id, text="Вам есть 18?", reply_markup=markup)
        elif message.text == "Да, мне есть 18":
                bot.send_message(message.chat.id, text='Вы прошли проверку!')
        elif message.text == 'Нет, мне нету 18':
                bot.send_message(message.chat.id, text='Вы не прошли проверку')
    
    bot.polling()

    так или так
    import telebot
    from telebot import types
    
    BOT_TOKEN = твой токен
    bot = telebot.TeleBot(BOT_TOKEN)
    
    @bot.message_handler(commands=['start'])
    def start(message):
        markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
        btnn1 = types.KeyboardButton("Проверка")
        markup.add(btnn1)
        bot.send_message(message.chat.id, text="Здравствуйте!", reply_markup=markup)
    
    @bot.message_handler(content_types=['text'])
    def func(message):
        if message.text == "Проверка":
            markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
            btnn1 = types.KeyboardButton("Да, мне есть 18")
            btnn2 = types.KeyboardButton("Нет, мне нету 18")
            markup.add(btnn1, btnn2)
            msg = bot.send_message(message.chat.id, text="Вам есть 18?", reply_markup=markup)
            bot.register_next_step_handler(msg,vosrat)
    def vosrat(message):
        if message.text == "Да, мне есть 18":
                bot.send_message(message.chat.id, text='Вы прошли проверку!')
        elif message.text == 'Нет, мне нету 18':
                bot.send_message(message.chat.id, text='Вы не прошли проверку')
    
    bot.polling()

    Если нужна помощь пиши в телеграм @Keffmen
    Отметь ответ если тебе помог
    Ответ написан
  • TelegramBot. В чем суть проблемы?

    Keffmen
    @Keffmen
    Изучаю Python , C# , HTML и многое другое
    Исправил код как указано в ответе выше IKIQ
    В этом месте нужно ссылаться на айди исходного сообщения, а не жестко его прописывать

    Если нужна помощь пиши в Telegram - "@Keffmen"
    import telebot
    from telebot import telebot.types
    # pip install pytelegrambotapi
    token = 'Ваш токен'
    bot = telebot.TeleBot(token)
    chat_id = '' # Например chat_id = '223344'
    # Telegram bot: Get My Id
     
    @bot.message_handler(commands=['start'])
    def button(message):
        markup = types.ReplyKeyboardMarkup(resize_keyboard=True)   
        bt1 = types.KeyboardButton('⏰Записатися на хімчистку')
        bt2 = types.KeyboardButton('Оплатити')
        bt3 = types.KeyboardButton('Розробник')
    
        markup.add(bt1, bt2, bt3)
        bot.send_message(message.chat.id, '<b>Привіт {0.first_name}!</b> <b>Що бажаєш обрати?</b>'.format(message.from_user, bot.get_me( )),
            parse_mode='html', reply_markup=markup)
    
    @bot.message_handler(content_types=['text'])
    def answer(message):
        if message.chat.type == 'private':
            if message.text == '⏰Записатися на хімчистку':
                bot.send_message(message.message_id, "Форма подачі запису: \n 1.Напиши свій ПІБ, і номер телефону для зв'язку.\n(Наш менеджер тобі передзвонить для уточнення інформації)")
            elif message.text == 'Оплатити':
                bot.send_message(message.message_id, 'https://next.privat24.ua/money-transfer/card')
            elif message.text == 'Розробник':
                bot.send_message(message.message_id, 'Liiinkoln')
     
    @bot.message_handler(func=lambda message: True)
    def echo_message(message):
        bot.send_message(chat_id=chat_id, text=message.text)
     
     
    bot.polling()
    Ответ написан
  • Можно ли в телеграм боте создать отдельный чат?

    Keffmen
    @Keffmen
    Изучаю Python , C# , HTML и многое другое
    Оставлю это тут.
    Самое простое это брать у твоих администраторов при регистрации или как то еще, не только имя (message.from_user.first_name) но и логин (message.from_user.username).

    Ну а в дальнейшем если тебе нужно кому-то отправить эту логин для связи то просто отправляешь его через @ и все)
    bot.send_message(message.chat.id, f'Тема:"{sheet["F" + str(i)].value}"\nВопрос:"{sheet["E" + str(i)].value}"\nСпособ ответа:{sheet["G" + str(i)].value}\nTelegram: @{sheet["I" + str(i)].value} \nТел:{sheet["C" + str(i)].value}\n', reply_markup=markup)

    Результат на фото!
    62a7550bec794872518123.png
    У меня это реализована для системы вопрос ответ , если человек задал вопрос и хотел бы что бы ему ответили письменно то ,я сразу записываю его логин при написание вопроса в excel. Ну и после отправляю сотрудникам что есть вопрос и нужно ответить письменно. НО есть одна проблема если пользователь изначально не сделал себе логин (политикой конфиденциальности Telegram и предотвращением злоупотреблений), то ты просто просто просишь его указать его в настройках , других вариантов я не нашел !
    Если есть решение этой проблемы скажите))
    Ответ написан
    Комментировать