Пример бота для анкетирования

← К списку тем

Здравствуйте, если будет время и желание у вас сделайте Бота - анкетёра.
То есть челвоек подключается-
Бот спрашивает- как зовут?
Чел отвечает Вася
Бота сразу задает следубщий вопрос- Сколько лет.
и т.д.
а в конце сообщение или кнопка- Анкетирование успешно пройдено.
а весь диалог в тхт файле на сервере.
Грачик Абдулошвили 22.10.2019 в 18:54

Авторизуйтесь через Telegram, чтобы ответить.
Откройте бот @SiteAuthBot, нажмите кнопку Старт/Start. Следуйте инструкциям бота.


Ответы

  • Было время ))) написал простого бота. Он собирает данные: Имя, Пол, Возраст. После заполнения анкеты - результат пишется в файл в директории "ankets" (по умолчанию создается) присылает уведомление админу бота что создана анкета. Если админ зашлет команду /all в бот, то получит список всех имеющихся анкет.

    Ну он получился очень не оптимизированный, так для примера на 3 вопроса. Можете его сделать универсальным под любое количество вопросов.

    Скачать бот анкету

    iMakeBots 22.10.2019 в 23:53
    • Бот неплохой, а могли бы пояснить вот этот кусок-
          private function router()
          {
              $data = $this->rawData;
              $chat_id = $this->getChatId();
              $text = $this->getText();
              if (array_key_exists("message", $data)) {
                  if (array_key_exists("text", $data['message'])) {
                      if ($text == "/start") {
                          $this->startBot($chat_id);
                      } elseif ($this->getStepUser($chat_id) == 1) {
                          $this->saveStep1($chat_id);
                      } elseif ($this->getStepUser($chat_id) == 3) {
                          $this->saveStep3($chat_id);
                      } elseif ($text == "/all" && $this->isAdmin($chat_id)) {
                          $msg = "Привет, Хозяин!\nПросмотр анкет:";
                          $this->sendMessage($chat_id, $msg);
                          $this->showUsersAnkets();
                      }
                  }
      почему только степ1 и степ 3 ?
      Грачик Абдулошвили 14.02.2020 в 21:15
      • Потому что в этих методах идет сохранение данных введенных пользователем. В степ 2 идет сохранение результата по кнопке.
        iMakeBots 14.02.2020 в 22:35
    • да бот рабочий, единственное я заметил что если как у вас в код НЕ зашивать обновление Вебхуков то приходится где то раз в час дергать ссылку-
      https://api.telegram.org/bot9700000:AAHOKBgIs20mJхххххххJGKayDaXx4eY34/setwebhook?url=https://ХХХХ.ml/index.php
      иначе бот засыпает.
      Грачик Абдулошвили 24.02.2020 в 15:23
      • Вебхук не зашивается, а настраивается на точку входа - в которую он при наличии обновлений, их направляет.
        Скрипт бота - это обработчик присланных вебхуком обновлений.
        iMakeBots 24.02.2020 в 16:27
    • Здравствуйте!
      Подскажите. пожалуйста, а как правильно осуществить подтверждение и редактирование данных ? Допустим пользователь нажал не ту кнопку ? Чтоб была возможность в конце подтвердить/отменить/изменить данные.
      Спасибо большое
      {{{ Andrew }}} 12.10.2020 в 13:02
      • В бот предусмотренна возможность «гулять» по анкете, в том числе и отменить.
        iMakeBots 12.10.2020 в 13:14
        • Подскажите, пожалуйста. К сожалению я только начинаю изучать PHP. Поверхность знаю про ООП (Из видеоуроков). Вижу, что методы с названиями удалить анкету и подобные имеются в индексном файле. НО я не пойму как они запускаются и где они работают в самом боте. Т.е. я прохожу анкетирование, но кнопок отменить/сохранить/удалить - нет. Анкета сохраняется, на ид администратора уходит сообщение и на этом все. Подскажите, пожалуйста, куда копать ?( Спасибо большое заранее :)
          {{{ Andrew }}} 12.10.2020 в 21:53
          • В модели Claim в файле Controllers/Claim.php в методе previewResult() обратите внимание на массив кнопок $buttons в нем присутствуют кнопки:
            goBackBtn - вернуться назад на 1 шаг
            sendBtn - отправить
            editBtn - редактировать - вернет на 1 шаг анкеты
            cancelBtn - отменить - предложит варианты отменить или продолжить
            iMakeBots 20.10.2020 в 10:20