Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 25, 2021 17:13:30

Temych
Зарегистрирован: 2021-09-25
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Простейший телеграм-бот "Сбор заявок"

Начал изучать телеграм ботов, библиотека pyTelegramBotAPI, понял как писать эхо-бота (то есть реакция на абсолютно все сообщения), реагировать на команду, на кнопку, на определенный текст сообщения, но как обрабатывать единичное входящее сообщение? Нужен простейший бот, который спрашивает поочередно имя, номер телефона и эл.почту человека. И главное, чтобы каждые данные вводились после соответствующего вопроса бота. Все данные записать в свои стринговые переменные и вывелись в консоль. Желательно с пояснениями. Заранее спасибо.

Офлайн

#2 Сен. 25, 2021 17:45:05

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1394
Репутация: +  124  -
Профиль   Отправить e-mail  

Простейший телеграм-бот "Сбор заявок"

Temych
Желательно с пояснениями. Заранее спасибо.
Есть такие программы которые собирают телеграмм ботов,в принципе простые боты можно собирать не заморачиваясь.Как называются не помню их несколько,забить в поиск нужно

Офлайн

#3 Сен. 25, 2021 17:56:09

Temych
Зарегистрирован: 2021-09-25
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Простейший телеграм-бот "Сбор заявок"

xam1816
Вы не поняли! Да, есть конструкторы ботов, но написанные собственноручно боты имеют свои преимущества. Мне надо именно научиться кодить бота

Офлайн

#4 Сен. 25, 2021 23:14:37

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10022
Репутация: +  857  -
Профиль   Отправить e-mail  

Простейший телеграм-бот "Сбор заявок"

Temych
Нужен простейший бот, который спрашивает поочередно имя, номер телефона и эл.почту человека.
Нужно сделать память боту. А потом в этой памяти нужно хранить состояние бота. Бот должен представлять из себя детерминированный конечный автомат. Естественно, он должен помнить своих клиентов с помощью этой памяти и с каждым клиентом быть в том состоянии, до которого тот клиент довёл бота. Так что это не такая простая программа, как ты обозначил её. Тебе нужно знать побольше про программирование вообще. Один питон тут, даже с модулями, тебе никак не поможет построить всю эту архитектуру.



Отредактировано py.user.next (Сен. 25, 2021 23:16:19)

Офлайн

#5 Сен. 26, 2021 11:18:30

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1394
Репутация: +  124  -
Профиль   Отправить e-mail  

Простейший телеграм-бот "Сбор заявок"

Temych
Мне надо именно научиться кодить бота
Вечером попробую написать

Офлайн

#6 Сен. 27, 2021 09:15:43

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1394
Репутация: +  124  -
Профиль   Отправить e-mail  

Простейший телеграм-бот "Сбор заявок"

 from bot_api import api
import telebot
bot = telebot.TeleBot(api)
class Dialog:
    def __init__(self, chat_id):
        self.chat_id = chat_id
        self.ask_list = ['ваше имя','номер телефона','адрес']
        self.answers = {}
        self.qsts = self.questions()
    def questions(self):
        for ask in self.ask_list:
            yield ask
    def to_ask(self):
        try:
            ask = next(self.qsts)
            m = bot.send_message(self.chat_id, ask)
            bot.register_next_step_handler(m, self.processing_answer, ask=ask)
        except StopIteration:
            print(self.answers)
    def processing_answer(self, msg, ask):
        self.answers[ask] = msg.text
        self.to_ask()
#
dialogs = {}
@bot.message_handler(commands=['reg'])
def accept_msg(msg):
    chat_id = msg.chat.id
    if chat_id not in dialogs:
        dialogs[chat_id] = Dialog(chat_id)
        dialogs[chat_id].to_ask()
    else:
        bot.send_message(chat_id,' вы уже опрошены')
if __name__ == '__main__':
    print('бот запущен')
    bot.polling(none_stop=True)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version