• Не могу запустить ошибку выдает node .js при запусе?

    erniesto77
    @erniesto77
    oop, rb, py, php, js
    скорее всего в клавиатуре (keyboard) некорректно сформированы кнопки (buttons)

    надо в соответствии с https://core.telegram.org/bots/api найдите там пункт KeyboardButton

    и по пути обратите особое внимание на свойство кнопок callback_data

    PS: не по теме, оберните код в своем сообщении в тег code lang="javascript"
    Ответ написан
    3 комментария
  • Как создать простую менюшку боту?

    @Solo3221 Автор вопроса
    Разобрался Сам
    #Стартовая клавиатура
    start_keyboard = telebot.types.ReplyKeyboardMarkup(resize_keyboard=True)
    start_keyboard.row('Сервис')
    #Клавиатура для выбора Отчёт и Задание
    stap_two_keyboard = telebot.types.ReplyKeyboardMarkup(resize_keyboard=True)
    stap_two_keyboard.row('Отчёт','Задание','Назад')
    
    #Глобальная переменная выбора функций, норм тема никогда так не делал)))
    VarFunctionSelection = 0
    # Handle '/start' and '/help'
    @bot.message_handler(commands=['help'])
    def send_welcome(message):
            bot.reply_to(message,(" I am here to echo your kind words back to you."))
    
    @bot.message_handler(commands=['start'])
    def handle_start(message):
            bot.send_message(message.from_user.id, 'Так, если не знаешь как этим пользоваться не тыкай кнопки', reply_markup=start_keyboard)
            bot.register_next_step_handler(message,msg)
    
    @bot.message_handler(func=lambda message: True, content_types=['text'])
    def msg(message):
            global VarFunctionSelection
            if message.text == 'Сервис':
                    bot.send_message(message.from_user.id, 'Для создания отчета нажми на кнопку(Отчёт)  и отправь текст отчета.',reply_markup=stap_two_keyboard)
            elif message.text == 'Отчёт':
                    VarFunctionSelection = 1
                    bot.send_message(message.from_user.id, 'Отправь сообщение боту со своим отчетом')
            elif message.text == 'Задание':
                    VarFunctionSelection = 2
                    bot.send_message(message.from_user.id, 'Отправь сообщение боту с заданием')
            elif message.text == 'Назад':
                    bot.send_message(message.from_user.id, 'Ну мы снова тут',reply_markup=start_keyboard)
            else:
                    if VarFunctionSelection == 1 :
     #Тут будет вызов функций обработки отчета
                            file_name = "Report_" + str(message.from_user.last_name) + "_" + str(message.from_user.first_name)  + ".txt"
                            f = open(file_name, 'a')
                            f.write(message.text + '\r\n')
                            f.close()
                            print(message.text)
                            bot.send_message(message.from_user.id, 'Отчет принят. И мы снова тут')
                            VarFunctionSelection = 0
                    elif VarFunctionSelection == 2:
                            #Тут будет вызов функций обработки задания
                            file_name = "Task_" + str(message.from_user.last_name) + "_" + str(message.from_user.first_name)  + ".txt"
                            f = open(file_name, 'a')
                            f.write(message.text + '\r\n')
                            f.close()
                            print(message.text)
                            bot.send_message(message.from_user.id, 'Задание отправилено. И мы снова тут')
                            VarFunctionSelection = 0
                    else:
                            VarFunctionSelection = 0
    Ответ написан
    Комментировать
  • Можно ли скачать изображение полученное ботом Telegram?

    it_monk
    @it_monk
    Разработчик в oncloud.ru
    bot.on('message', msg => {
      let url = `https://api.telegram.org/bot${token}/getFile?file_id=${msg.photo.file_id}`;
      // Получение данных о файле


    В ответе будет json вида

    "ok" : true,
    "result" : {
        "file_id" : "XXXX",
        "file_size" : 27935,
        "file_path" : "photo\/file_1.jpg"
    }


    Непосредственно сам файл можно получить по ссылке https:// api.telegram.org/file/bot${token}/${file_path}
    Ответ написан
    2 комментария