Download the PHP package alexvkokin/telegram-bot-app without Composer

On this page you can find all versions of the php package alexvkokin/telegram-bot-app. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package telegram-bot-app

Конструктор для telegram ботов

Для установки, запустите команду в командной строке

composer require alexvkokin/telegram-bot-app

Маршрутизатор

KeyboardMap

Маршрутизатором в проекте служит статическая переменная keyboardMap класса KeyboardMap, далее будем называть ее картой кнопок, она описывает полные пути до контроллеров и методов, а также команды которые их запускают.

Например

Как видно из примера, каждый элемент массива, это описание контроллера:

'Tbot/TestApp/StartController' - полный путь до контроллера. Обязательно используйте namespace при описании своих классов, чтобы избежать конфликтов

'actionStart' - название метода в классе 'Tbot/TestApp/StartController'

'setButton' - описание кнопок keyboard которые будут установлены в боте, при выполнении метода 'actionStart'. Однако для установки кнопок не достаточно просто описать из в карте кнопок, нужно также явно задать запрос на их установку из метода класса (для более детальной информации, смотрите код метода 'Tbot/TestApp/StartController'->'actionStart'). Формат кнопки:

'inline' - описываются inline команды, при выполнении из телеграм бота которых, будет запускаться метод 'actionStart' соответствующего класса

'callback' - события связанные с inline keyboard. В данном параметре мы прописываем название метода, который будет обрабатывать кнопки с callback_data Допустим у нас есть кнопка "Вывести мои данные"

Чтобы на стороне сервера, было отловлено нажатие на данную кнопку, мы должны в карте кнопок указать какой контроллер и метод будет отлавливать данное событие. Для этого добавим следующую запись ` Тем самым мы указываем, что при клике на кнопку"Вывести мои данные", будет выполнен методprofileGetконтроллераTbot/TestApp/ProfileController. Параметрыid=5|parent_id=1будут доступны в полеcallbackParams` в виде массива

'message' - Выше были описаны способы отлова событий по клику. Данный атрибут содержит название класса сообщения, которое будет отловлено и передано на обработку методу 'actionMessage' класса 'Tbot/TestApp/ProfileController'

Чтобы описать собственную карту кнопок, создайте новый класс, допустим AppKeyboardMap, расширьте его базовым классом KeyboardMap и в нем опишите все классы и методы вашего приложения. Смотрите пример в папке test/map/AppKeyboardMap.php

Работа с контроллером

Выше мы создали собственный класс AppKeyboardMap с описанием наших контроллеров и методов, а также кнопок и команд с ними связанных. Далее нам нужно создать все эти контроллеры и методы.

Создадим класс StartController расширим его базовым классом Controller, далее создадим метод actionStart(). При срабатывании данного метода, будем устанавливать кнопки в телеграм боте пользователя. Какие кнопки будут устанавливаться уже описано в нашей карте кнопок (смотрите разделом выше). Пример класса StartController смотрите в папке test/controllers/StartController.php

Как вы видите, выполняется запрос к api телеграм бота на установку кнопок. Конструирование кнопок проходит с помощью хелпера Helper::keyboard

В него мы отправляем нашу карту, название нашего класса и метода. В результате если в карте кнопок по указанному адресу присутствует опция установки кнопок setButton, то все описанные в ней кнопки будут установлены в бот пользователя

Запуск проекта

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

\Tbot\TestApp\AppKeyboardMap - Ваша карта, как создать описано в разделе KeyboardMap \Tbot\TestApp\StartController - Ваш стартовый контроллер, как создать описано в разделе Работа с контроллером


All versions of telegram-bot-app with dependencies

PHP Build Version
Package Version
Requires php Version >=7.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package alexvkokin/telegram-bot-app contains the following files

Loading the files please wait ....