This package can be installed through Composer.
composer require mprince/laravel-viber-bot
In Laravel 5.5 and above the package will autoregister the service provider. In Laravel 5.4 you must install this service provider.
// config/app.php
'providers' => [
...
Paragraf\ViberBot\ViberBotServiceProvider::class,
...
];
Please see CHANGELOG for more information what has changed recently.
You need to set in .env
and setup webhook
.
VIBERBOT_API=your_viber_token
VIBERBOT_NAME=name
VIBERBOT_PHOTO=photo
You can find Viber token on Viber Partners after creating bot on Info tab.
You must run artisan command for webhoook with url parameter
php artisan viber-bot:webhook https://example-url.com/some-route
Note: It must be full url and must be HTTPS.
Optionally, you can publish the config file of this package with this command:
php artisan vendor:publish --provider="Paragraf\ViberBot\ViberBotServiceProvider"
The following config file will be published in config/viberbot.php
When the installation is done you have access to Bot
and Client
class.
With bot class you naivgate your ViberBot how to work.
(new Bot($request, new TextMessage()))
->on(new MessageEvent($request->timestamp, $request->message_token,
new ViberUser($request->sender['id'],$request->sender['name']), $request->message))
->hears("Hi!")
->replay("Hello World!")
->send();
Note: If viber user not set name
you will get error.
You can change responding type Message and Event who listen that event.
API | Accept | Description |
---|---|---|
on(new MessageEvent(...)) |
Event object |
Listen specific Event |
hears("Hi!") |
string, array, regex |
ViberBot listen key word Hi! , can be array for more words for one event |
body($callback) |
callback |
ViberBot can do some business logic. |
replay("Hello World!") |
string, array, Model |
ViberBot respond with Hello World! , can be array or Model |
send() |
--- | Send respond to Viber server. |
- ConversationStartedEvent
- DeliveredEvent
- FailedEvent
- MessageEvent
- SeenEvent
- SubscribedEvent
- UnsubscribedEvent
Note:
If you don't want to listen all events you can change event_types
in config/viberbot.php
.
If you change you must run again php artisan viber-bot:webhook your-url
in oreder to apply changes.
- TextMessage
- BroadcastMessage
- ContactMessage
- FileMessage
- KeyboardMessage
- LocationMessage
- PictureMessage
- StickerMessage
- URLMessage
- VideoMessage
- WelcomeMessage
- CarouselMessage - ToDo
Client class, provide to you extra utility.
(new Client())->broadcast('Hello', User::all(), 'viber_id');
API | Description |
---|---|
broadcast($text, $model, $method) |
Broadcast message to all subscribed user on Viber Chat, 300 users per request. |
getUserDetails($user_id) |
Get details for specific user |
getOnlineStatus(array $viberIds) |
Get online statuses for users, 100 users per request |
getAccountInfo() |
Get account information (Your Public Account) |
removeWebhook() |
Remove WebHook |
Note: $method
in broadcast()
must point to viber_id. Also getOnlineStatus()
need viber_ids
.
If you want more information about Viber API or how something works check Viber REST API
Please see CONTRIBUTING for details.
If you discover any security related issues, please email [email protected] instead of using the issue tracker.