wingbot-botservice
v3.10.0
Published
Microsoft BotService connector for wingbot.ai
Downloads
70
Readme
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'
});
});