wilsonglasser / laravel-chatapi-whatsapp
Send WhatsApp messages with Chat API
Installs: 7 881
Dependents: 0
Suggesters: 0
Security: 0
Stars: 48
Watchers: 6
Forks: 20
Open Issues: 3
Requires
- php: >=5.6.4
- ext-json: *
- guzzlehttp/guzzle: ^6.2
Requires (Dev)
- illuminate/notifications: ^5.3
- illuminate/support: ^5.1|^5.2|^5.3
- mockery/mockery: ^0.9.5
- phpunit/phpunit: 4.*
This package is auto-updated.
Last update: 2024-12-13 22:28:39 UTC
README
This package makes it easy to send WhatsApp messages using Chat API with Laravel 5.
Contents
Installation
You can install the package via composer:
composer require wilsonglasser/laravel-chatapi-whatsapp
You must install the service provider:
// config/app.php 'providers' => [ ... NotificationChannels\ChatAPI\ChatAPIServiceProvider::class, ],
Configuration
Configure your credentials:
// config/services.php ... 'chatapi' => [ 'token' => env('CHATAPI_TOKEN', ''), 'api_url' => env('CHATAPI_URL', ''), ], ...
Usage
You can now use the channel in your via()
method inside the Notification class.
use NotificationChannels\ChatAPI\ChatAPIChannel; use NotificationChannels\ChatAPI\ChatAPIMessage; use Illuminate\Notifications\Notification; class InvoicePaid extends Notification { public function via($notifiable) { return [ChatAPIChannel::class]; } public function toChatAPI($notifiable) { return ChatAPIMessage::create() ->to($notifiable->phone) // your user phone ->file('/path/to/file','My Photo.jpg') ->content('Your invoice has been paid'); } }
Routing a message
You can either send the notification by providing with the chat id of the recipient to the to($phone) method like shown in the above example or add a routeNotificationForChatAPI() method in your notifiable model:
... /** * Route notifications for the Telegram channel. * * @return int */ public function routeNotificationForChatAPI() { return $this->phone; } ...
Available Message methods
to($phone)
: (integer) Recipient's phone.content('message')
: (string) Message.file('/path/to/file','My Photo.jpg')
: (string) File real path, you can also send the file contents and pass two additional params for file name and file mime type (required)file('/path/to/file','My Photo.jpg','image/jpg')