Giter VIP home page Giter VIP logo

adiafora / laravel-notification-bitrix24 Goto Github PK

View Code? Open in Web Editor NEW
5.0 2.0 1.0 54 KB

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

License: MIT License

PHP 100.00%

laravel-notification-bitrix24's Introduction

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

laravel-notification-bitrix24's People

Contributors

adiafora avatar dependabot[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

sillexo

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.