LINE Notify Provider for Laravel 5.3+ Notification.
- PHP 7.0+
- Laravel 5.3+ (Recommend 5.4+)
-
install package
$ composer require rc1021/laravel-line-notify
-
Make notifable class (ex User Model entity)
<?php namespace App; use Illuminate\Notifications\Notifiable; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable { use Notifiable; // ... /** * @return string LINE Notify OAuth2 token */ protected function routeNotificationForLine() { return '{LINE Notify OAuth2 token}'; } }
-
Make notification
<?php namespace App\Notifications; use App\User; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Notifications\Notification; use Rc1021\LineNotify\Message\LineMessage; class NewUserNotification extends Notification// implements ShouldQueue { use Queueable; /** @var User */ protected $user; /** * Create a new notification instance. * * @param User $user */ public function __construct(User $user) { $this->user = $user; } /** * Get the notification's delivery channels. * * @param mixed $notifiable * * @return array */ public function via($notifiable) { return ['line']; } /** * @param mixed $notifable callee instance * @return LineMessage */ public function toLine($notifable) { return (new LineMessage())->message('New user: ' . $this->user->name) ->imageUrl('https://example.com/sample.jpg') // With image url (jpeg only) ->imageFile('/path/to/image.png') // With image file (png/jpg/gif will convert to jpg) ->sticker(40, 2); // With Sticker } }
-
call
$notifable->notify()
$user = User::find(114514); $user->notify(new NewUserNotification($user));