This package can be installed through Composer.
composer require paragraf-lex/viber-botIn 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=photoYou 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-routeNote: 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 nemanja.ivankovic@paragraf.rs instead of using the issue tracker.