toropyga/telegram

Libraries for working with Telegram bot from Toropyga

v2.2.0 2021-08-30 05:47 UTC

This package is auto-updated.

Last update: 2025-06-29 02:00:55 UTC


README

Отправка сообщений от имени Телеграм бота

License Version PHP

Содержание

Общие понятия

Класс Telegram предназначен для отправки сообщений от имени Телеграм бота.

Для работы необходимо наличие PHP версии 5.5 и выше, библиотеки PHP php-json и php-curl. Также используются дополниельные библиотеки Base и NetContent

Установка

Рекомендуемый способ установки библиотеки NetContent с использованием Composer:

composer require toropyga/telegram

Настройка

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

Описание работы

Подключение файла класса

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);