Компоненты библиотеки/BA_TelegramSender.md


Что такое BA_TelegramSender?

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

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



Подключение

include(__DIR__.'/classes/BA_TelegramSender.php');

use classes\BA_TelegramSender;

$sender = new BA_TelegramSender();

В include передаётся путь до файла.

В use указывается пространство имён, в котором хранятся классы. Изначально в данной библиотеке классы хранятся в каталоге “classes” и относятся к пространству имён “classes”.

Методом setBotToken укажите токен телеграм-бота, а в методе отправки (sendMessage или sendFiles) укажите ID чата, куда нужно отправить.



Методы

addString

Вызов:

$uploader->addString($newString);

Параметр - строка.

Добавляет строку к тексту сообщения.


addStrings

Вызов:

$uploader->addStrings($newStrings);

Добавляет несколько строк к тексту сообщения.

$newString - массив строк.


setStrings

Вызов:

$uploader->setStrings($newStrings);

Задаёт текст сообщения в виде массива строк. Если строки уже были заданы - заменяет старое значение новым.

$newString - массив строк.


clearStrings

Вызов:

$uploader->clearStrings();

Без параметров

Очищает текст сообщения.


setBotToken

Вызов:

$uploader->setBotToken($bot_token);

Устанавливает значение токена телеграм-бота.

Посмотреть значение можно методом getBotToken().


setMaxFileSize

Вызов:

$uploader->setMaxFileSize($maxFileSize)

Задает максимальный размер файла в байтах. Файлы большего размера грузиться не будут, даже если заданы методом setFiles.

Посмотреть значение: getMaxFileSize().


setTheme

Вызов:

$uploader->setTheme($theme);

$theme - строка (необязательный параметр).

Задаёт тему сообщения. Тема сообщения будет выводиться в первой строке текста.

Посмотреть значение: getTheme().


setFiles

Вызов:

$uploader->setFiles($files);

$files - массив.

Задаёт массив файлов, предназначенных для отправки.

В данных файла должен присутствовать ключ ‘file_path’ со значением полного пути до файла на сервере, включая имя и расширение.

Пример:

0=>[‘name’=>‘cat.jpg’, ‘type’=>‘image/jpg’ …]

1=>[‘name’=>‘dog.png’, ‘type’=>‘image/png’ …]


sendMessage

Вызов:

$uploader->sendMessage($chatID, $message);

Отправляет сообщение в чат.

$chatID - идентификатор чата (целое число).

$message - текст сообщения для отправки (необязательный параметр). Если не задан - сообщение компонуется из добавленных заранее строк.

Токен бота должен быть заранее указан методом setBotToken

Возвращаемые значения:

  • В случае успешной отправки или false - при ошибке

  • Если не задан токен бота - возвращает -2

  • Если сообщение (переданное, как параметр или составленное из заранее заданных строк) не является строкой - возвращает -1


sendFiles

Вызов:

$uploader->sendFiles($chatID, $files)

Отправляет медиа-сообщение с файлами в чат.

$chatID - идентификатор чата (целое число).

$files - файлы для отправки (необязательный параметр). Файлы могут быть заданы заранее методом setFiles. Формат массива смотрите в описании метода setFiles

Токен бота должен быть заранее указан методом setBotToken

Возвращаемые значения:

  • true или 1 в случае успешной отправки.

  • Если не задан токен бота - возвращается -2.

  • Если даннные о файлах не являются массивом - возвращает -1.

  • Если массив файлов пустой - -3.

  • false - если при отправке файлов возникла ошибка.



Цепной вызов методов

Следующие методы возвращают указатель на свой объект, а значит - их можно вызывать цепочкой:

  • addString
  • addStrings
  • setStrings
  • clearStrings
  • setBotToken
  • setMaxFileSize
  • setTheme
  • setFiles


Пример кода

Код

$tgSender = new BA_TelegramSender();

$tgSender
	->setBotToken($bot_token)
	->setTheme('Заказан обратный звонок')
	->addString('На сайте site.test заказан обратный звонок.')
	->addString('Получены следующие данные:')
	->addString('')
	->addStrings($additionalStrings);

$response1 = $tgSender->sendMessage($chatID);

$response2 = $tgSender->sendFiles($chatID, $uploadedFiles);

Пояснение

Переменные, использованные в примере:

$bot_token - идентификатор токена телеграм-бота.

$additionalStrings - любой текст, который вы захотите добавить в конец сообщения. Просто для примера.

$chatID - идентификатор телеграм-чата.

$uploadedFiles - массив с данными отправляемых файлов. Формат массива смотрите в описании метода setFiles