Данный пакет расширяет стандартные возможности Notification Laravel, позволяя отправлять уведомления из Вашего приложения в чат Битрикс24, или же пользователю Битрикс24.
Для реализации уведомлений используется система вебхуков на основании REST API Битрикс24 (подробнее о вебхуках читайте в официальной документации Битрикс24). Это значит, что Вы должны самостоятельно добавить вебхук на своем портале Битрикс24 и получить его токен. Данный токен необходимо внести в файл конфигурации config/bitrix24_notice.php
.
Также обязательно в файл конфигурации внести ID пользователя Битрикс24, от имени которого будут отправляться уведомления, и поддомен Вашей компании в Битрикс24.
Установка пакета с помощью Composer.
composer require "adiafora/laravel-notification-bitrix24"
Если версия Laravel меньше чем 5.5 - добавьте в файл config/app.php
вашего проекта в конец массива providers
:
Adiafora\Bitrix24\Bitrix24ServiceProvider::class,
После установки, выполните в консоли команду публикации файла конфигурации:
php artisan vendor:publish --provider="Adiafora\Bitrix24\Bitrix24ServiceProvider"
В нем Вы обязательно должны заполнить все поля, описанные выше, иначе уведомления не будут работать.
В Вашем via()
Вы можете использовать канал:
use Adiafora\Bitrix24\Bitrix24Channel;
use Adiafora\Bitrix24\Bitrix24Message;
use Illuminate\Notifications\Notification;
class BitrixNotice extends Notification
{
protected $invoice;
public function __construct($invoice)
{
$this->invoice = $invoice;
}
public function via($notifiable)
{
return [Bitrix24Channel::class];
}
public function toBitrix24($notifiable)
{
$data = [
'invoice' => $this->invoice,
];
return (new Bitrix24Message)
->view('notice', $data)
->toUser();
}
}
Пакет ожидает, что ему будет передан ID чата, в который необходимо отправить сообщение, или же ID уведомляемого пользователя.
Например, если ID пользователя Битрикс24 - 56
, создать уведомление для него можно вот так:
Notification::send(56, new BitrixNotice($invoice));
или же
Notification::route('bitrix24', '56')
->notify(new BitrixNotice($invoice));
Если же для уведомления Вы используете данные Вашей модели, то Вы должны добавить следующую функцию в уведомляемую модель, которая должна вернуть число - ID чата или пользователя:
public function routeNotificationForBitrix24(): int
{
return $this->bitrix_id;
}
view()
В качестве уведомления Вы можете использовать шаблон Blade. Метод принимает название шаблона и массив с данными, которые будут использованы в шаблоне. При использовании шаблона Вы все-равно должны использовать форматирование, описанное в документации REST API
text()
Простой текст уведомления
toUser()
По-умолчанию уведомления отправляются в чат, ID которого был передан. Если же Вы хотите отправить сообщение пользователю, то Вы должны передать его ID, и у объекта new Bitrix24Message()
вызвать метод toUser()
. Таким образом, данный метод определяет, к чему относится переданный ID - к чату, или пользователю.
MIT Лицензия (MIT). Свободно распространяемый продукт.