machaao
v0.2.2
Published
Build, develop and rapidly launch personalized chatbots on Web and Android via MessengerX.io
Downloads
42
Readme
Build, Grow and Monetize Personalized Chatbots
NodeJS package for MACHAAO aka MessengerX.io npm module for building personalized chatbots on web and beyond
Documentation
- Visit https://messengerx.rtfd.io/ for full documenation.
Installation
npm i --save machaao
Quick Start Guide
Register via MessengerX Developer Portal and verify your account.
Create a new bot by clicking on 'Add New App'
You can set Webhook and Image Url as None till deployment of your Chat App to get started.
Once your bot is created, click on Settings and copy 'Token' value.
Install npm package in your server file by running
npm i --save machaao
Initialize the MessengerX SDK as show in the example below which takes in the
Token
that you copied in the above step, andserver
object. Currently our SDK supports express server object and other libraries will be supported in upcoming releases:
const MxSdk = require('machaao');
const express = require('express');
const server = express();
const lib = new MxSdk('<----Bot Token----->', 'prod', server);
server.listen(3000);
- Once you have initialised the SDK, you can easily read incoming user messages and send responses back to the user (Simple Text, Buttons, Quick Replies and Carousel)
- In order for the integration to be complete, you will need to update your bot settings in portal and update the Webhook Url with your server url and endpoint. (You may choose to use Ngrok.io for development purpose to test the integration.)
- Check out below sample that shows how you can setup a webhook that accepts incoming user message and responds back to the user.
const MxSdk = require('machaao');
const express = require('express');
const server = express();
const lib = new MxSdk('<---Bot Token---->', 'prod', server);
server.post('/incoming', async (req, res) => {
let x = await lib.getUserMessages(req); // read incoming user messages
await lib.sendTextMessage(req, 'hi');
await lib.sendButtonsOrQuickRepliesMessage(
req,
'test buttons',
[{ title: 'button', type: 'postback', payload: 'Hi' }], // sample buttons
[{ title: 'qr', content_type: 'text', payload: 'qr' }] // sample quick reply
);
//sample carousel
await lib.sendCarousel(req, 'test carousel', [
{
title: 'title',
subtitle: 'subtitle',
image_url: 'https://provogue.s3.amazonaws.com/provogue-duffle1.jpg',
buttons: [{ title: 'button', type: 'postback', payload: 'Hi' }],
},
{
title: 'title',
subtitle: 'subtitle',
image_url: 'https://provogue.s3.amazonaws.com/provogue-duffle1.jpg',
buttons: [{ title: 'button', type: 'postback', payload: 'Hi' }],
},
{
title: 'title',
subtitle: 'subtitle',
image_url: 'https://provogue.s3.amazonaws.com/provogue-duffle1.jpg',
buttons: [{ title: 'button', type: 'postback', payload: 'Hi' }],
},
]);
res.send(200);
});
server.listen(3000);
Support
For any queries or questions, please write to [email protected] to reach us.
Release Notes
v 0.2.1
- Added support for User Tags API.
- Better API response handling