1.2.17 • Published 3 years ago

botbuilder-adapter-bitworkers v1.2.17

Weekly downloads
9
License
MIT
Repository
github
Last release
3 years ago

travis build version downloads MIT License semantic-release

botbuilder-adapter-bitworkers

Features

  • Better Error handling
  • Easier Testing
  • Simpler Api

Usage

Install the necessary dependencies:

npm install botbuilder-adapter-bitworkers botbuilder botbuilder-dialogs restify typescript source-map-support &&
npm install --save-dev nodemon  @types/source-map-support ts-node

Create a bot:

// bot.ts
import { ActivityHandler, TurnContext } from 'botbuilder'
import { createAdapter } from 'botbuilder-adapter-bitworkers'

async function sendCactus(context: TurnContext): Promise<void> {
  await context.sendActivity('🌵')
}

/**
 * Creates a bot that just sends 🌵.
 */
export function createCactusBot(): ActivityHandler {
  const adapter = createAdapter()
  adapter.onMembersAdded = sendCactus
  adapter.onMessage = sendCactus
  return adapter.bot
}

Create a server:

// server.ts
import 'source-map-support/register'
import * as restify from 'restify'
import { BotFrameworkAdapter } from 'botbuilder'
import { createCactusBot } from './bot'

// Create adapter.
const adapter = new BotFrameworkAdapter({
  appId: process.env.MicrosoftAppId,
  appPassword: process.env.MicrosoftAppPassword,
})

// Create the bot.
const myBot = createCactusBot()

// Create HTTP server.
const server = restify.createServer()

// Listen for incoming requests.
server.post('/api/messages', (req: any, res: any) => {
  adapter.processActivity(req, res, async context => {
    // Route to main dialog.
    await myBot.run(context)
  })
})

const port = process.env.port || process.env.PORT || 3978

server.listen(port, () => {
  console.log(`🌵  listening to http://localhost:${port}/api/messages`)
})

Run it:

npx nodemon --exec ts-node server.ts