Microsoft BotService connector for wingbot.ai
npm install wingbot-botservice``javascript
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);
};
`
`javascript`
const directLine = new DirectLine();
directLine.postActivity({
type:'event',
name:'postBack',
from:{ id: botserviceUserId },
value:{ action: 'action-path', data: {/ optional /} }
});
-----------------
BotService connector for wingbot.ai
functionPatch, 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 class
* BotService
* [new BotService(processor, options, [senderLogger])](#new_BotService_new)
* .processEvent(body) ⇒ Promise.<Array.<{message:Object, pageId:string}>>
* .verifyRequest(body, headers) ⇒ Promise
| 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 |
Kind: instance method of BotService
Returns: Promise.<Array.<{message:Object, pageId:string}>> - - unprocessed events
| Param | Type | Description |
| --- | --- | --- |
| body | bs.Activity | event body |
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 |
functionKind: global function
Returns: function - - the middleware
| Param | Type | Default | Description |
| --- | --- | --- | --- |
| bot | Router | | chatbot itself |
| [startAction] | string | "start" | start action to fetch quick replies |
Example
`javascript
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'
});
});
``