wingbot-botservice v3.10.0
Microsoft BotService plugin for wingbot.ai
const { Router, Bot } = require('wingbot');
const { BotService } = require('wingbot-botservice');
const bot = new Bot();
const processor = new Processor(bot);
const bs = new BotService(processor, {
appId: '123',
appSecret: '456'
});
// the route
module.exports.bot = async (req, res) => {
const { body, headers } = req;
await bs.verifyRequest(body, headers);
await bs.processEvent(body);
};
Using backchannel for sending postBacks to the bot
const directLine = new DirectLine();
directLine.postActivity({
type:'event',
name:'postBack',
from:{ id: botserviceUserId },
value:{ action: 'action-path', data: {/* optional */} }
});
API
Classes
Functions
BotService
BotService connector for wingbot.ai
Kind: global class
- BotService
- new BotService(processor, options, [senderLogger])
- .processEvent(body) ⇒ Promise.<Array.<{message:Object, pageId:string}>>
- .verifyRequest(body, headers) ⇒ Promise
new BotService(processor, options, senderLogger)
Param | Type | Default | Description |
---|---|---|---|
processor | Processor | wingbot Processor instance | |
options | Object | ||
options.appId | string | botservice client id | |
options.appSecret | string | botservice client secret | |
options.grantType | string | boservice authentication grant_type | |
options.scope | string | boservice authentication scope | |
options.uri | string | boservice authentication uri | |
options.welcomeAction | string | null | "'start'" | conversation start emits postback |
options.requestLib | function | request library replacement for testing | |
options.overPublic | string | override public key for testing | |
senderLogger | console | optional console like chat logger |
botService.processEvent(body) ⇒ Promise.<Array.<{message:Object, pageId:string}>>
Process Facebook request
Kind: instance method of BotService
Returns: Promise.<Array.<{message:Object, pageId:string}>> - - unprocessed events
Param | Type | Description |
---|---|---|
body | bs.Activity | event body |
botService.verifyRequest(body, headers) ⇒ Promise
Verify Facebook webhook event
Kind: instance method of BotService
Throws:
- Error when authorization token is invalid or missing
Param | Type | Description |
---|---|---|
body | Object | parsed request body |
headers | Object | request headers |
botServiceQuickReplyPatch(bot, startAction) ⇒ function
Patch, which solves problem with BotFramework. Always, when conversationId is changed, middleware looks for matching quick replies from first text request. When there are some, it redirects user
Kind: global function
Returns: function - - the middleware
Param | Type | Default | Description |
---|---|---|---|
bot | Router | chatbot itself | |
startAction | string | "start" | start action to fetch quick replies |
Example
const { Router } = require('wingbot');
const { botServiceQuickReplyPatch } = require('wingbot-botservice');
const bot = new Router();
// attach as first
const patch = botServiceQuickReplyPatch(bot, 'start');
bot.use(patch);
bot.use('start', (req, res) => {
res.text('Hello', {
goto: 'Go to'
});
});
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago