@2chdotru

Получить ответ пользователя telegram bot?

Ситуация следующая.

Есть программа, которая формирует отчеты. Запущено 100 её копий на 10 серверах, каждая копия работает независимо со своей базой. Эти 100 копий через "https://api.telegram.org/botхххх/sendMessage?chat_... №1 - всё ок" присылают логи своей работы в чат.

Иногда программе в процессе работы нужны дополнительные данные от человека в чате и она напишет в чат свой запрос "вышли мне данные по договору №3". Человек в чат ей ответит.

Внимание вопрос. Как корректно получить ответ пользователя?
  • Вопрос задан
  • 1971 просмотр
Пригласить эксперта
Ответы на вопрос 2
@shadrin_ss
Junior
Если я все так понял...
Логи хранятся в log или что то подобное txt
Воспользуйся простыми вещами и дописывай ответ в конец лога и что бы было "корректно" останавливай логи во время.
Ответ написан
Комментировать
Danya_Violet
@Danya_Violet
CTO/CIO
если без бэкенда, то возможно
вызывать https://api.telegram.org/botTOKEN/getupdates после того как человек "вышлет данные по договору №3" и разбирать json.

если же библиотека, например, pyTelegramBotAPI

для текстовых данных:
@bot.message_handler(commands=['subscribe'])
def send_welcome(message):
    global sub
    sub = [line.rstrip('\n') for line in open(subscribefile, 'rt')]
    if str(message.text) not in sub:
        with open(subscribefile, 'a') as f:
            f.write(str(message.text) + "\n")
        sub = [line.rstrip('\n') for line in open(subscribefile, 'rt')]
        bot.send_message(message.chat.id, "чат айди записан")


для файлов:
@bot.message_handler(content_types=['document'])
def handle_file(message):
    try:
        chat_id = message.chat.id
        file_info = bot.get_file(message.document.file_id)
        downloaded_file = bot.download_file(file_info.file_path)
        src = 'C:/Python/Project/tg_bot/files/received/' + message.document.file_name;
        with open(src, 'wb') as new_file:
            new_file.write(downloaded_file)
        bot.reply_to(message, "Пожалуй, я сохраню это")
    except Exception as e:
        bot.reply_to(message, e
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы