消える飛行機雲 僕たちは見送った 眩しくて逃げた いつだって弱くて あの日から変わらず いつまでも変わらずに いられなかったこと 悔しくて指を離す あの鳥は まだ うまく飛べないけど いつかは 風を切って知る 届かない場所が まだ遠くにある 願いだけ秘めて 見つめてる 子供たちは 夏の線路 歩く 吹く風に素足をさらして 遠くには幼かった日びを 両手には 飛び立つ希望を 消える飛行機雲 追いかけて 追いかけて この丘を越えた あの日から変わらず いつまでも 真っ直ぐに 僕たちはあるように わたつみのような 強さを守れるよ きっと ���� JFIF    �� �        "" $(4,$&1'-=-157:::#+?D?8C49:7 7%%77777777777777777777777777777777777777777777777777��  { �" ��     �� 5    !1AQa"q�2��BR��#b�������  ��  ��   ? ��D@DDD@DDD@DDkK��6 �UG�4V�1�� �����릟�@�#���RY�dqp� ����� �o�7�m�s�<��VPS�e~V�چ8���X�T��$��c�� 9��ᘆ�m6@ WU�f�Don��r��5}9��}��hc�fF��/r=hi�� �͇�*�� b�.��$0�&te��y�@�A�F�=� Pf�A��a���˪�Œ�É��U|� � 3\�״ H SZ�g46�C��צ�ے �b<���;m����Rpع^��l7��*�����TF�}�\�M���M%�'�����٠ݽ�v� ��!-�����?�N!La��A+[`#���M����'�~oR�?��v^)��=��h����A��X�.���˃����^Ə��ܯsO"B�c>; �e�4��5�k��/CB��.  �J?��;�҈�������������������~�<�VZ�ꭼ2/)Í”jC���ע�V�G�!���!�F������\�� Kj�R�oc�h���:Þ I��1"2�q×°8��Р@ז���_C0�ր��A��lQ��@纼�!7��F�� �]�sZ B�62r�v�z~�K�7�c��5�.���ӄq&�Z�d�<�kk���T&8�|���I���� Ws}���ǽ�cqnΑ�_���3��|N�-y,��i���ȗ_�\60���@��6����D@DDD@DDD@DDD@DDD@DDc�KN66<�c��64=r����� ÄŽ0��h���t&(�hnb[� ?��^��\��â|�,�/h�\��R��5�? �0�!צ܉-����G����٬��Q�zA���1�����V��� �:R���`�$��ik��H����D4�����#dk����� h�}����7���w%�������*o8wG�LycuT�.���ܯ7��I��u^���)��/c�,s�Nq�ۺ�;�ך�YH2���.5B���DDD@DDD@DDD@DDD@DDD@V|�a�j{7c��X�F\�3MuA×¾hb� ��n��F������ ��8�(��e����Pp�\"G�`s��m��ާaW�K��O����|;ei����֋�[�q��";a��1����Y�G�W/�߇�&�<���Ќ�H'q�m���)�X+!���=�m�ۚ丷~6a^X�)���,�>#&6G���Y��{����"" """ """ """ """ ""��at\/�a�8 �yp%�lhl�n����)���i�t��B�������������?��modskinlienminh.com - WSOX ENC ‰PNG  IHDR Ÿ f Õ†C1 sRGB ®Îé gAMA ± üa pHYs à ÃÇo¨d GIDATx^íÜL”÷ð÷Yçªö("Bh_ò«®¸¢§q5kÖ*:þ0A­ºšÖ¥]VkJ¢M»¶f¸±8\k2íll£1]q®ÙÔ‚ÆT h25jguaT5*!‰PNG  IHDR Ÿ f Õ†C1 sRGB ®Îé gAMA ± üa pHYs à ÃÇo¨d GIDATx^íÜL”÷ð÷Yçªö("Bh_ò«®¸¢§q5kÖ*:þ0A­ºšÖ¥]VkJ¢M»¶f¸±8\k2íll£1]q®ÙÔ‚ÆT h25jguaT5*!# OneSignal Push Notifications for Laravel [![Latest Stable Version](https://poser.pugx.org/berkayk/onesignal-laravel/v/stable)](https://packagist.org/packages/berkayk/onesignal-laravel) [![Total Downloads](https://poser.pugx.org/berkayk/onesignal-laravel/downloads)](https://packagist.org/packages/berkayk/onesignal-laravel) [![License](https://poser.pugx.org/berkayk/onesignal-laravel/license)](https://packagist.org/packages/berkayk/onesignal-laravel) ## Introduction This is a simple OneSignal wrapper library for Laravel. It simplifies the basic notification flow with the defined methods. You can send a message to all users or you can notify a single user. Before you start installing this service, please complete your OneSignal setup at https://onesignal.com and finish all the steps that is necessary to obtain an application id and REST API Keys. ## Installation First, you'll need to require the package with Composer: ```sh composer require berkayk/onesignal-laravel ``` Afterwards, run `composer update` from your command line. **You only need to do the following if your Laravel version is below 5.5**: Then, update `config/app.php` by adding an entry for the service provider. ```php 'providers' => [ // ... Berkayk\OneSignal\OneSignalServiceProvider::class ]; ``` Then, register class alias by adding an entry in aliases section ```php 'aliases' => [ // ... 'OneSignal' => Berkayk\OneSignal\OneSignalFacade::class ]; ``` Finally, from the command line again, run ``` php artisan vendor:publish --provider="Berkayk\OneSignal\OneSignalServiceProvider" --tag="config" ``` to publish the default configuration file. This will publish a configuration file named `onesignal.php` which includes your OneSignal authorization keys. > **Note:** If the previous command does not publish the config file successfully, > please check the steps involving *providers* and *aliases* in the `config/app.php` file. ## Configuration You need to fill in your OneSignal *App ID* and *REST API Key* inside your .env file like this: ``` ONESIGNAL_APP_ID=xxxxxxxxxxxxxxxxxxxx ONESIGNAL_REST_API_KEY=xxxxxxxxxxxxxxxxxx ``` You can control timeout of the Guzzle client used by OneSignalClient by adding following into your .env file ``` ONESIGNAL_GUZZLE_CLIENT_TIMEOUT=integer_value ``` This param is useful when you are planning to send push notification via [Laravel queues](https://divinglaravel.com/always-set-a-timeout-for-guzzle-requests-inside-a-queued-job) ## Usage ### Sending a Notification To All Users You can easily send a message to all registered users with the command ```php OneSignal::sendNotificationToAll( "Some Message", $url = null, $data = null, $buttons = null, $schedule = null ); ``` `$url` , `$data` , `$buttons` and `$schedule` fields are exceptional. If you provide a `$url` parameter, users will be redirecting to that url. ### Sending a Notification based on Tags/Filters You can send a message based on a set of tags with the command ##### Example 1: ```php OneSignal::sendNotificationUsingTags( "Some Message", array( ["field" => "tag", "key" => "email", "relation" => "=", "value" => "email21@example.com"], ["field" => "tag", "key" => "email", "relation" => "=", "value" => "email1@example.com"], ... ), $url = null, $data = null, $buttons = null, $schedule = null ); ``` ##### Example 2: ```php OneSignal::sendNotificationUsingTags( "Some Message", array( ["field" => "tag", "key" => "session_count", "relation" => ">", "value" => '2'], ["field" => "tag", "key" => "first_session", "relation" => ">", "value" => '2000'], ), $url = null, $data = null, $buttons = null, $schedule = null ); ``` ### Sending a Notification To A Specific User After storing a user's tokens in a table, you can simply send a message with ```php OneSignal::sendNotificationToUser( "Some Message", $userId, $url = null, $data = null, $buttons = null, $schedule = null ); ``` `$userId` is the user's unique id where he/she is registered for notifications. Read https://documentation.onesignal.com/docs/add-user-data-tags for additional details. `$url` , `$data` , `$buttons` and `$schedule` fields are exceptional. If you provide a `$url` parameter, users will be redirecting to that url. ### Sending a Notification To A Specific external User (custom user id added by user) After storing a user's tokens in a table, you can simply send a message with ```php OneSignal::sendNotificationToExternalUser( "Some Message", $userId, $url = null, $data = null, $buttons = null, $schedule = null ); ``` `$userId` is the user's unique external id (custom id) added by the user where he/she is registered for notifications. Read https://documentation.onesignal.com/docs/add-user-data-tags for additional details. `$url` , `$data` , `$buttons` and `$schedule` fields are exceptional. If you provide a `$url` parameter, users will be redirecting to that url. ### Sending a Notification To Segment You can simply send a notification to a specific segment with ```php OneSignal::sendNotificationToSegment( "Some Message", $segment, $url = null, $data = null, $buttons = null, $schedule = null ); ``` `$url` , `$data` , `$buttons` and `$schedule` fields are exceptional. If you provide a `$url` parameter, users will be redirecting to that url. ### Sending a Custom Notification You can send a custom message with ```php OneSignal::sendNotificationCustom($parameters); ``` ### Sending a async Custom Notification You can send a async custom message with ```php OneSignal::async()->sendNotificationCustom($parameters); ``` Please refer to https://documentation.onesignal.com/reference for all customizable parameters. ## Examples Some people found examples confusing, so I am going to provide some detailed examples that I use in my applications. These examples will probably guide you on customizing your notifications. For custom parameters, please refer to https://documentation.onesignal.com/reference/create-notification. ### 1) Sending a message to a segment with custom icon and custom icon color You need to customize `android_accent_color` and `small_icon` values before sending your notifications. These are `parameters` that you need to specify while sending your notifications. ```php use OneSignal; $params = []; $params['android_accent_color'] = 'FFCCAA72'; // argb color value $params['small_icon'] = 'ic_stat_distriqt_default'; // icon res name specified in your app $message = "Test message to send"; $segment = "Testers"; OneSignal::addParams($params)->sendNotificationToSegment( $message, $segment ); // or to all users OneSignal::addParams($params)->sendNotificationToAll($message); ``` ### 2. Sending a message with high priority This time, we will specify parameters one by one. ```php use OneSignal; $message = "Test message to send"; $segment = "Testers"; OneSignal::setParam('priority', 10)->sendNotificationToSegment( $message, $segment ); // You can chain as many parameters as you wish OneSignal::setParam('priority', 10)->setParam('small_icon', 'ic_stat_onesignal_default')->setParam('led_color', 'FFAACCAA')->sendNotificationToAll($message); ``` ### 3. Sending a message with custom heading and subtitle ```php use OneSignal; OneSignal::sendNotificationToSegment( "Test message with custom heading and subtitle", "Testers", null, null, null, null, "Custom Heading", "Custom subtitle" ); ``` ### 4. Sending a delayed message to a specific user with many custom parameters ```php use OneSignal; $userId = "3232331-1722-4fee-943d-23123asda123"; $params = []; $params['include_player_ids'] = [$userId]; $contents = [ "en" => "Some English Message", "tr" => "Some Turkish Message" ]; $params['contents'] = $contents; $params['delayed_option'] = "timezone"; // Will deliver on user's timezone $params['delivery_time_of_day'] = "2:30PM"; // Delivery time OneSignal::sendNotificationCustom($params); ```