Skip to content

Данный пакет расширяет стандартные возможности Notification Laravel, позволяя отправлять уведомления из Вашего приложения в чат Битрикс24, или же пользователю Битрикс24.

License

Notifications You must be signed in to change notification settings

adiafora/laravel-notification-bitrix24

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Laravel Notification to Bitrix24

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

About

Данный пакет расширяет стандартные возможности Notification Laravel, позволяя отправлять уведомления из Вашего приложения в чат Битрикс24, или же пользователю Битрикс24.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages