adiafora/laravel-notification-bitrix24

Package for Laravel notification to Bitrix24

1.6.4 2021-08-21 13:53 UTC

This package is auto-updated.

Last update: 2021-10-21 14:15:52 UTC


README

Данный пакет расширяет стандартные возможности 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). Свободно распространяемый продукт.