Pull to refresh

Comments 13

Почему не выбрали эту библиотеку? github.com/php-telegram-bot/core
И подскажите чем удобнее тот который выбрали, что бы учесть и исправить

Не скажу за автора, но я отказался из-за странной системы команд: невозможно пробросить свои зависимости в конструктор, как следствие — сложно интегрировать с существующим сайтом/приложением. Это больше похоже на фреймворк для создания бота, чем на библиотеку :)

Спасибо. Есть в планах и надеюсь до стабильной версии успеем рефакторить. Хочу внести DI. Если есть ещё советы, буду рад услишать
А вы имеете какое-то отношение к этому репозиторию? Я в данный момент в свободное время добавляю Doctrine для работы не только с MySQL, но и с PostgreSQL, например.
Он есть один из разработчиков
Да, я основатель проекта и один из мейнтеинеров. Правда последнее время я очен занят другими проектами но скоро планирую возобновить активную работу над проектом
Точно такая же история — сначала взял эту библиотеку, но потом запарился вписывать свою логику в предполагаемую систему команд, хочется более гибкую/простую библиотеку, без навязанной архитектуры
Изначально мне казалось, что в этой библиотеке очень просто и удобно реализовать логику. То есть написал функцию на определенную команду и описал внутри весь функционал. Но когда понадобилось дописать общую логику для всех команд — возникли проблемы (ниже по тексту комментаторы все верно отписали BoShurik PQR )

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

PS: на самом деле описать свою логику очень просто (я имею ввиду библиотеку для телеграм). Самый простой вариант на коленке займет около часов 2. Просто посмотреть вывод php://input от телеграм и описать логику структуры. Далее можно использовать наброски кода, что я привел в статье в главе Велосипедство.

У меня в свое время получилось что-то вроде этого: https://github.com/BoShurik/telegram-bot-example. Отличие в том что я запоминаю не только команду, но и данные которые ввел пользователь, т.о. можно, например, заполнить заявку пошагово

Есть еще одна либа, которая сразу приходит на ум botman.io
Ещё бесит в вашей либе, что сообщения отправляются статично без привязки к конкретному боту, т. е. `Request::sendPhoto()`, то есть одновременно двух ботов в коде нельзя держать. Это очень печально. Раз мы создаём экземпляр бота, отправляться должно через этот экземпляр:
```php
$bot = new Longman\TelegramBot\Telegram($bot_api_key, $bot_username);
$bot->sendPhoto();
```

Хорошее начало, но я бы рекомендовал при усложнении логики бота вместо реализации на контроллерах использовать State Machine т.к. в этом случае можно будет делать более сложную логику общения, реагировать на inline buttons в сообщениях и изменять/дополнять отдельные сообщения, хранить состояние не только в рамках чата/отдельного пользователя, но и отдельных сообщений и работать как через вебхуки, так и через опрос обновлений (отделить способ доставки обновлений от логики обработки).

Вы не могли бы чуть подробнее расписать, как роутить хуки в нужный контроллер?

Как он шлёт данные на example.ru/path? Это пост или гет?
Sign up to leave a comment.

Articles