toropyga / telegram
Libraries for working with Telegram bot from Toropyga
Requires
- php: >=5.5.0
- ext-curl: *
- ext-json: *
- toropyga/base: *
- toropyga/netcontent: *
README
Sending messages on behalf of a Telegram bot
Content
- General description
- Installation
- Configuration
- Work description
- Including a class file
- Classes initialisation
- Setting the method of interaction with the Telegram API when sending messages
- Установка токена телеграм бота
- Установка параметров Webhook-сервера
- Удаление сервера Webhook
- Получение информации о сервере Webhook
- Установка идентификатора получателя
- Включение отладки
- Получение логов
- Пример отправки сообщения
- Пример отправки фотографии
General description
The Telegram class is designed to send messages on behalf of the Telegram bot.
To work, you need PHP version 5.5 or higher, PHP libraries php-json and php-curl. Additional libraries are also used Base and NetContent
Installation
Recommended way to install NetContent library using Composer:
composer require toropyga/telegram
Configuration
Pre-setting of default parameters can be done either directly in the class itself or using named constants. Named constants are declared before calling the class, if necessary, for example in the configuration file, and define the default parameters.
- TELEGRAM_TOKEN - Telegram Bot Token;
- TELEGRAM_ID - chat ID (person) to whom a message are sending
- TELEGRAM_DEBUG - enable or disable debugging options;
- TELEGRAM_LOG_NAME - logs file name;
Work description
Including a class file
require_once("NetContent.php"); require_once("Base.php"); require_once("Telegram.php");
or use composer
require_once("vendor/autoload.php");
Classes initialisation
use Toropyga\Base; $net = new Toropyga\NetContent(); $telegram = new Toropyga\Telegram($net);
or with automatic connection of the NetContent class
use Toropyga\Base; $telegram = new Toropyga\Telegram();
Setting the method of interaction with the Telegram API when sending messages
$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);