blip-sdk-js
Simple BLiP SDK for JavaScript
This is a work in progress
See more about BLiP here
Installing
Node.js
If you are using node.js
(or webpack
), it's necessary to install blip-sdk
package (via npm) to access the BLiP server.
npm install --save blip-sdk lime-transport-websocket
Browser
If you are using a web application (on browser) with "pure" Javascript is possible to install the package via npm
using the <script>
tag. For this case beyond blip-sdk
package it's necessary install others dependences as the lime-js
and lime-transport-websocket
packages:
<script src="./node_modules/lime-js/dist/lime.js" type="text/javascript"></script>
<script src="./node_modules/lime-transport-websocket/dist/WebSocketTransport.js" type="text/javascript"></script>
<script src="./node_modules/blip-sdk/dist/blip-sdk.js" type="text/javascript"></script>
You can also use unpkg to get the packages if you are not using npm
on development:
<script src="https://unpkg.com/lime-js" type="text/javascript"></script>
<script src="https://unpkg.com/lime-transport-websocket" type="text/javascript"></script>
<script src="https://unpkg.com/blip-sdk" type="text/javascript"></script>
Instantiate the BlipSdk Client
You will need an identifier
and a access key
to connect a chatbot to BLiP. To get them:
- Go to Painel BLiP and login;
- Click on
Chatbots
and then click on Create chatbot
; - Choose
SDK
model option; - Create your chatbot, then your
identifier
and access key
will be displayed.
In order to instantiate the client use ClientBuilder
class informing the identifier
and access key
:
import * as BlipSdk from 'blip-sdk';
import * as WebSocketTransport from 'lime-transport-websocket'
let client = new BlipSdk.ClientBuilder()
.withIdentifier(IDENTIFIER)
.withAccessKey(ACCESS_KEY)
.withTransportFactory(() => new WebSocketTransport())
.build();
client.connect()
.then(function(session) {
})
.catch(function(err) { });
Each client
instance represent a server connection and can be reused. To close a connection use:
client.close()
.then(function() { })
.catch(function(err) { });
Receiving
All messages sent to the chatbot are redirected to registered receivers
of messages and notifications. You also can define filters to each receiver
.
The following example show how to add a simple message receiver:
client.addMessageReceiver(true, function(message) {
});
The next sample show how to add notification receiver with filter to received
event type:
client.addNotificationReceiver("received", function(notification) {
});
It's also possible use a custom function as receiver filter:
Example of message receiver with filter of originator:
client.addMessageReceiver(function(message) { message.from === "553199990000@0mn.io" }, function(message) {
});
client.addNotificationReceiver(() => true, function(notification) {
});
Each registration of receivers return a handler
that can be used to cancel the registration:
var removeJsonReceiver = client.addMessageReceiver("application/json", handleJson);
removeJsonReceiver();
Sending
It's possible send notifications and messages only after sessions has been stablished.
The following sample show how to send a message after connection has been stablished:
client.connect()
.then(function(session) {
var msg = { type: "text/plain", content: "Hello, world", to: "553199990000@0mn.io" };
client.sendMessage(msg);
});
The following sample show how to send a notification after connection has been stablished:
client.connect()
.then(function(session) {
var notification = { id: "ef16284d-09b2-4d91-8220-74008f3a5788", to: "553199990000@0mn.io", event: Lime.NotificationEvent.RECEIVED };
client.sendNotification(notification);
});
Contributing
For information on how to contribute to this package, please refer to our Contribution guidelines.