This package makes it easy to send notifications using Chat API with Laravel 5.6+.
First of all: contract or get your free demo account and setup your Whatsapp number: Whatsapp authentication process
You can install the package via composer:
$ composer require silasrm/chat-api
In order to send message to Whatsapp using Chat API, you need to authenticate your number using QR Code on API.
Add your Chat API url and token to your config/services.php
:
// config/services.php
...
'chatapi' => [
// Like: https://euXXXX.chat-api.com/instanceYYYYY/
'url' => env('CHATAPI_URL'),
'token' => env('CHATAPI_TOKEN'),
],
...
You can use the channel in your via()
method inside the notification:
use Illuminate\Notifications\Notification;
use Silasrm\ChatApi\ChatApiMessage;
use Silasrm\ChatApi\ChatApiChannel;
class OrderCreated extends Notification
{
public function via($notifiable): array
{
return [
ChatApiChannel::class,
];
}
public function toRocketChat($notifiable): ChatApiMessage
{
return ChatApiMessage::create('John Doe create a new order with value US$ 50.0')
->to('NNNNNNNNNNNNNN'); // Phone number with country code
}
}
In order to let your notification know which Chat API phone number you are targeting, add the routeNotificationForChatApi
method to your Notifiable model:
public function routeNotificationForChatApi(): string
{
return $this->phone;
}
to()
: Specifies the phone number to send the notification to (overridden by routeNotificationForChatApi
if empty).
content()
: Sets a content of the notification message. Supports pure text, UTF-8 or UTF-16 string with emoji.
attachment()
: This will add an single attachment.
attachments()
: This will add multiple attachments.
link()
: This will add an single link.
links()
: This will add multiple links.
There are several ways to add one ore more attachments to a message
public function toChatApi($notifiable)
{
return ChatApiMessage::create('Test message')
->to('NNNNNNNNNNNNNN') // Phone number with country code
->attachments([
// url (for remote) or path (for local), file
ChatApiAttachment::create()->url('test'),
ChatApiAttachment::create(['url' => 'test']),
new ChatApiAttachment(['url' => 'test']),
['url' => 'test']
]);
}
caption()
: The text caption for this attachment.
filename()
: Name of this file. If empty, use the original name of file.
[
[
'caption' => 'Caption of file',
'filename' => 'payment.xlsx',
]
];
There are several ways to add one ore more links to a message
public function toChatApi($notifiable)
{
return ChatApiMessage::create('Test message')
->to('NNNNNNNNNNNNNN') // Phone number with country code
->links([
ChatApiLink::create()
->url('https://wikimedia.org/nature')
->title('All about Nature')
->previewImage('https://upload.wikimedia.org/wikipedia/ru/3/33/NatureCover2001.jpg'),
ChatApiLink::create([
'url' => 'https://wikimedia.org/nature',
'title' => 'All about Nature',
'previewImage' => 'https://upload.wikimedia.org/wikipedia/ru/3/33/NatureCover2001.jpg',
]),
new ChatApiLink([
'url' => 'https://wikimedia.org/nature',
'title' => 'All about Nature',
'previewImage' => 'https://upload.wikimedia.org/wikipedia/ru/3/33/NatureCover2001.jpg',
]),
[
'url' => 'https://wikimedia.org/nature',
'title' => 'All about Nature',
'previewImage' => 'https://upload.wikimedia.org/wikipedia/ru/3/33/NatureCover2001.jpg',
]
]);
}
title()
: The title of link. Required.
previewImage()
: The image url/path of link preview. Required.
description()
: The description for this link.
[
[
'title' => 'All about Nature',
'previewImage' => 'https://upload.wikimedia.org/wikipedia/ru/3/33/NatureCover2001.jpg',
'description' => 'See that!',
]
];
Please see CHANGELOG for more information what has changed recently.
$ vendor/bin/phpunit
If you discover any security related issues, please email [email protected] instead of using the issue tracker.
Please see CONTRIBUTING for details.
Please see CHANGELOG for more information on what has changed recently.
The MIT License (MIT). Please see License File for more information.