Обсуждение

Разработка чат-ботов Telegram

Тема в разделе "Обсуждение инфопродуктов", создана пользователем Huligan3, 21 окт 2019.

  1. 21 окт 2019
    #1
    Huligan3
    Huligan3 ДолжникДолжник
    Обсуждаем продукт и помогаем друг другу.
     
  2. 22 окт 2019
    #2
    Меньшиков ИП
    Меньшиков ИП ДолжникДолжник
    В курсе этого нет, может более опытный подскажет. Возможна ли выдача ответов в html(или еще как-либо..) в виде таблиц, чартов и т.п. Так же интересует организация передачи боту ряда параметров (дата или диапазона дат, время, численно-буквенного наименования и т.п.).
     
  3. 22 окт 2019
    #3
    mobiman
    mobiman ОргОрганизатор (А)
    Если просто html, то можно использовать телеграф.
    Что значит параметров? Если это ответ от пользователя, то конечно можно. Если имеется ввиду переход по ссылке на бота, с параметрами, то только через start
     
  4. 22 окт 2019
    #4
    mobiman
    mobiman ОргОрганизатор (А)
    Если нужны чарты и таблицы, лучше создавать отдельную страничку, выводить на ней то, что нужно и ставить кнопку под которой ссылка на бота типа Скрытая ссылка, чтобы вернуть пользователя назад
     
  5. 22 окт 2019
    #5
    Меньшиков ИП
    Меньшиков ИП ДолжникДолжник
    Не поняли друг друга. Предполагается, что пользователь указывает боту (скажем дату), бот на основе БД на эту дату формирует отчет (табличный) + чарт(ы). Такой сценарий возможен?
     
  6. 22 окт 2019
    #6
    mobiman
    mobiman ОргОрганизатор (А)
    естественно. Просто его нужно обработать. В данном курсе основной упор делается на кнопки, потому что их легче обрабатывать. Но никто не запрещает вывести вопрос, а следующий ответ пользователя обработать как ответ на этот вопрос. Естественно, нужно делать проверки. Если скажем задали вопрос про дату, то и ответ пользователя нужно проверить, что он ввел именно дату. Все это делается достаточно просто. Но нужно понимать, что на вопрос Введите дату, ответ может быть какой угодно и не обязательно дата. Потому нужно еще продумать поведение бота на неверный ответ. Если дата является критическими данными, то нужно повторять вопрос до тех пор, пока не получишь правильный ответ. При этом, опять же, необходимо предусмотреть возможность выхода из формы. Может человек случайно туда попал и не хочет вводить дату. Можно вывести кнопку, например выход, и завершить опрос.
    Как то так.
     
    1 человеку нравится это.
  7. 22 окт 2019
    #7
    Меньшиков ИП
    Меньшиков ИП ДолжникДолжник
    Заставлять пользователя вводить дату вручную плохая затея. Возможно вывести форму ввода в виде календаря, чтобы пользователь только ткнул в нужную дату, а в ответ, получил результат работы бота?
     
  8. 22 окт 2019
    #8
    mobiman
    mobiman ОргОрганизатор (А)
    Да, это идеальный вариант, но тогда на тебя ложится полностью формирование самого календаря :) Поверь, это уже не так просто, как то, что в курсе :)
     
  9. 22 окт 2019
    #9
    mobiman
    mobiman ОргОрганизатор (А)
    Чтобы делать календарь, нужно учесть еще один важный момент. Любое сообщение, отправленное ботом, можно редактировать. Для красивой обработки календаря (сделать кнопки листания месяца, года и прочее) нужно постоянно редактировать этот пост, т.е. при нажатии на выбор другого месяца, перерисовать календарь в том же сообщении. Иначе получится куча сообщений, в каждом из которых есть календарь, такой себе список календарей :) Самое печальное, что все они будут работать и бот будет на них реагировать. Поэтому именно редактирование сообщения позволит однозначно идентифицировать выбранную дату. Но в курсе про редактирование сообщения ничего нет. Нужно смотреть в документацию.

    Из реалий курса можно сделать что-то типа такого (в файле с функциями)
    PHP:
    <?php
    function editMessageText($chat_id,$message_id,$text,$markup=null,$disable_web_page_preview=false)
    {
       if (isset($chat_id)) {
           return get($GLOBALS['url'].'editMessageText?chat_id='.$chat_id.'&message_id='.$message_id.'&text='.urlencode($text).'&parse_mode=Markdown&disable_web_page_preview='.$disable_web_page_preview);
      } 
    }
    и потом вызов
    PHP:
    <?php
    $keyboard = keyboard(новая клавиатура);
        
    $hello = "новый текст";
    
    editMessageText($uid, $msgid, $hello,$keyboard);
    Это не рабочий вариант, скорее как пример!!!
     
    2 пользователям это понравилось.
  10. 22 окт 2019
    #10
    igor307
    igor307 ЧКЧлен клуба
    Не совсем понятно как заставить бота реагировать на кнопки, автор не дает не одного примера. Может кто в теме, подскажите. Урок № 3.
     
  11. 23 окт 2019
    #11
    mobiman
    mobiman ОргОрганизатор (А)
    Там всё подробно. Кнопки есть разные, есть кнопки, у которых ее текст и есть то, на что нужно реагировать. Как будто вместо нажатия кнопки, человек сам написал. А есть кнопки, под которыми прячется определенный заранее текст, тогда его нужно обрабатывать. Почитайте ещё раз.
     
    1 человеку нравится это.
  12. 23 окт 2019
    #12
    igor307
    igor307 ЧКЧлен клуба
    Вы наверное не совсем правильно поняли мой вопрос. Меня интересует, как заставить бота при нажатии на кнопку показывать нужный текст. Интересуют кнопки под которыми прячется заданный текст. Как выглядит сам обработчик, для кнопок.
     
  13. 23 окт 2019
    #13
    mobiman
    mobiman ОргОрганизатор (А)
    Судя по всему вы не внимательно изучили курс. Там всё рассказывается подробно.
     
    1 человеку нравится это.
  14. 24 окт 2019
    #14
    igor307
    igor307 ЧКЧлен клуба
    Что-бы я еще раз полез в этот Telegram, да ну его нафиг...
     
  15. 25 окт 2019
    #15
    mobiman
    mobiman ОргОрганизатор (А)
    Один из самых простых мессенджеров :) Хочешь дебри, полезь в слак :)
     
    1 человеку нравится это.
  16. 20 ноя 2019
    #16
    Manu88
    Manu88 ДолжникДолжник
    Привет товарищи!
    Что то у меня бот вообще не реагирует ни на что(
    Даже по первому уроку.
     
  17. 21 ноя 2019
    #17
    mobiman
    mobiman ОргОрганизатор (А)
    ну батенька, мы тут не телепаты :) Если все делал по инструкции, должно работать. Важно, регистрация хука должна быть обязательно на HTTPS. Если хук зареген, и токен верный, то должны приходить запросы. Я использую PHPStorm и пользуюсь дебагером. Потому точно знаю, что приходит.
    Не помню было в уроках или нет, но как вариант, поставь postman и зарегай хук там, будешь видеть ответ, принял телеграм хук или нет.
     
    1 человеку нравится это.
  18. 21 ноя 2019
    #18
    Manu88
    Manu88 ДолжникДолжник
    Спасибо за разъяснения. Попробую. Или опишу подробнее, что происходит у меня)
     
  19. 21 ноя 2019
    #19
    Manu88
    Manu88 ДолжникДолжник
    В общем все делаю по инструкции.
    Создал бота -> Зарегистрировал предложенный автором хостинг -> Создал файл -> Скопировал в него скрипт из первого урока -> Указал токен и ссылку -> Запустил скрипт
    Код:
    https://mtobot.000webhostapp.com/mybot.php
    ->Получил ответ
    Код:
    {"ok":true,"result":true,"description":"Webhook was set"}
    
    Пишу боту, ответа нет.
    То же самое с вторым скриптом из второго урока.

    Что делаю не так?)
     
  20. 21 ноя 2019
    #20
    mobiman
    mobiman ОргОрганизатор (А)
    Хук зареган, значит должны приходить сообщения. Дальше нужно их разбирать. Но, опять же я использую дебагер, мне проще...
     

Поделиться этой страницей