toropyga / telegram
Libraries for working with Telegram bot from Toropyga
Requires
- php: >=5.5.0
- ext-curl: *
- ext-json: *
- toropyga/base: *
- toropyga/netcontent: *
README
Отправка сообщений от имени Телеграм бота
Содержание
- Общие понятия
- Установка
- Настройка
- Описание работы
- Подключение файла класса
- Инициализация класса
- Установка метода взаимодействия с API Телеграм
- Установка токена телеграм бота
- Установка параметров Webhook-сервера
- Удаление сервера Webhook
- Получение информации о сервере Webhook
- Установка идентификатора получателя
- Включение отладки
- Получение логов
- Пример отправки сообщения
- Пример отправки фотографии
Общие понятия
Класс Telegram предназначен для отправки сообщений от имени Телеграм бота.
Для работы необходимо наличие PHP версии 5.5 и выше, библиотеки PHP php-json и php-curl. Также используются дополниельные библиотеки Base и NetContent
Установка
Рекомендуемый способ установки библиотеки NetContent с использованием Composer:
composer require toropyga/telegram
Настройка
Предварительная настройка параметров по умолчанию может осуществлятся или непосредственно в самом классе, или с помощью именованных констант. Именованные константы при необходимости обявляются до вызова класса, например, в конфигурационном файле, и определяют параметры по умолчанию.
- TELEGRAM_TOKEN - токен Телеграм бота;
- TELEGRAM_ID - идентификатор чата (человека) которому посылаем сообщение
- TELEGRAM_DEBUG - включение или отключение параметров отладки;
- TELEGRAM_LOG_NAME - имя файла логов;
Описание работы
Подключение файла класса
require_once("NetContent.php"); require_once("Base.php"); require_once("Telegram.php");
или с использованием composer
require_once("vendor/autoload.php");
Инициализация класса
use \FYN\Base; $net = new FYN\NetContent(); $telegram = new FYN\Telegram($net);
или с автоматическим подключением класса NetContent
use \FYN\Base; $telegram = new FYN\Telegram();
Установка метода взаимодействия с API Телеграм при отправке сообщений
$telegram->setMethod('sendVideo');
Поддерживаемые методы
- 'sendMessage' - отправка текстового сообщения,
- 'sendPhoto' - отправка фотографии или изображения,
- 'sendDocument' - отправка документа как вложения,
- 'sendVideo' - отправка видео файла,
- 'sendAudio' - отправка звукового файла,
- 'sendVoice' - отправка голосового сообщения,
- 'sendAnimation' - отправка анимированного изображения.
Установка токена телеграм бота
$telegram->setToken("000000000:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
Установка параметров сервера Webhook
$webhook_url = 'https://your_server_path'; // адрес Webhook-сервера $certificate = '/home/user/ssl/my_ssl'; // путь к персональному сертификату (необязательный параметр) $ip_address = '000.000.000.000'; // IP-адрес , который будет использоваться для отправки запросов Webhook вместо IP-адреса, полученного через DNS (необязательный параметр) $max_connections = 40; // максимальное количество одновременных подключений к Webhook-серверу [1-100] (необязательный параметр) $telegram->setWebhook ($webhook_url, $certificate, $ip_address, $max_connections);
Удаление сервера Webhook
$telegram->deleteWebhook();
Получение информации о сервере Webhook
$info = $telegram->getWebhookInfo();
Установка идентификатора получателя
$telegram->setChatID("000000000");
Включение отладки
$telegram->setDebug(true);
Если включен, то логируются все действия, в противном случае - только конечный результат.
Получение логов
$telegram->getLogs();
Возвращается массив действий и ошибок, и имя файла логов
Пример отправки сообщения
$token = "000000000:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; // токен Телеграм бота $chat_id = 000000000; // ID чата получателя $telegram->setMethod('sendMessage'); $telegram->setToken($token); $telegram->setChatID($chat_id); if (!$answer = $telegram->sendToTelegram($message)) Base::dump($telegram->getLogs()); else Base::dump($answer);
или отправка сообщения с использованием параметров по умолчанию
$message = "Hi!"; if (!$answer = $telegram->sendToTelegram($message)) Base::dump($telegram->getLogs()); else Base::dump($answer);
Пример отправки фотографии
$token = "000000000:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; // токен Телеграм бота $chat_id = 000000000; // ID чата получателя $reply_message_id = 0000; // ID сообщения на которое даём ответ, по умолчанию - 0; $caption = "It's my photo!"; $path_to_photo = "/home/images/my.jpeg"; $telegram->setDebug(true); $telegram->setToken($token); $telegram->setChatID($chat_id); $telegram->setMethod('sendPhoto'); if (!$answer = $telegram->sendToTelegram($caption, $path_to_photo, $reply_message_id)) Base::dump($telegram->getLogs()); else Base::dump($answer);
отправка документа пользователю
$chat_id = 111111111; // ID чата получателя $caption = "It's my photo!"; $path_to_photo = "/home/images/my.jpeg"; $telegram->setMethod('sendPhoto'); if (!$answer = $telegram->sendToTelegram($caption, $path_to_photo, 0, $chat_id)) Base::dump($telegram->getLogs()); else Base::dump($answer);
или отправка фотографии с использованием параметров по умолчанию
$caption = "It's my photo!"; $path_to_photo = "/home/images/my.jpeg"; $telegram->setMethod('sendPhoto'); if (!$answer = $telegram->sendToTelegram($caption, $path_to_photo)) Base::dump($telegram->getLogs()); else Base::dump($answer);