A node module for Microsoft BotBuilder Framework.
This module provides plug-in Viber connector for Microsoft BotBuilder framework.
botbuilder-viber
currently supports the following tracking features:
- sending text, image, buttons, stickers messages
- receiving text messages
- receiving images
- receiving other messages as text message
[json]
withmessage.attachments[0]
filled with raw Viber message:
{
payload: rawMessage, /* json from viber directly */
contentType: 'object',
}
botbuilder-viber
is installed just like any other node module:
$ npm i botbuilder-viber
In your bot's app.js:
var viber = require('botbuilder-viber')
...
var viberOptions = {
Token: process.env.VIBER_TOKEN,
Name: 'ViberBotName',
AvatarUrl: 'http://url.to/pngfile'
}
var viberChannel = new viber.ViberEnabledConnector(viberOptions)
//after initialising your bot and existing connectors
bot.connector(viber.ViberChannelId, viberChannel)
app.use('/viber/webhook', viberChannel.listen())
When the bot starts, you need to register your webhook with Viber.
Url of the webhook will be the url of your bot appended /viber/webhook
.
Example: https://botappservice.azurewebsites.net/viber/webhook
botbuilder-viber
requires express
instead of restify
like most BotBuilder
samples do.
var viberPayload = {}
viberPayload[viber.ViberChannelId] = {
"type": "sticker",
"sticker_id": 114406
}
var stickerMessage = new builder.Message(session).sourceEvent(viberPayload)
session.send(stickerMessage)
How to find out Viber's sticker ids?
- This BotBuilder is working on top of
viber-node
module: https://github.com/Viber/viber-bot-node - It can probably send whole set of different messages Viber supports (Text, Url, Contact, Picture, Video, Location, Sticker, File)
- Avatar is recommended to be 720x720, and no more than 100kb (otherwise will not show on mobile clients). Use tinypng to make it smaller.