Компоненты библиотеки/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