Laravel client and channel for WhatsApp API (by Chat API)
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')