bottender-handovers

0.3.0 • Public • Published

bottender-handovers

npm Build Status License: MIT

An experimental package for Messenger Handover Protocol with Bottender.

Installation

npm install bottender-handovers

Usage

const { middleware } = require('bottender');
const handovers = require('bottender-handovers');
 
const handleHandovers = handovers({
  shouldControlPass: context => context.event.text === '/help',
  shouldControlTake: context =>
    context.event.isStandby && context.event.text === '/back',
  willControlPass: async context => {
    await context.sendText('Passing thread control to the page inbox.');
  },
  didControlTake: async context => {
    await context.sendText('Took thread control back.');
  },
});
 
// This bot should be assigned as primary receiver app
bot.onEvent(
  middleware([
    handleHandovers,
    async context => {
      if (!context.event.isStandby) {
        await context.sendText('Respond by bot.');
      }
    },
  ])
);

Using Request Thread Control

bottender-handovers provide two built-in functions to utilize Messenger Platform's Request Thread Control events. Simply pass them to shouldControlPass option.

const { middleware } = require('bottender');
const handovers = require('bottender-handovers');
const { isRequestThreadControlFrom } = handovers;
 
// request from and pass to 3rd party CRM service
const myCRMAppId = 123456;
const handleHandovers = handovers({
  shouldControlPass: isRequestThreadControlFrom(myCRMAppId),
  targetAppId: myCRMAppId,
});
 
// request from and pass to Facebook Page Inbox
const handleHandovers = handovers({
  shouldControlPass: context =>
    context.event.isRequestThreadControlFromPageInbox,
});

Options

shouldControlPass(context): boolean

Default: () => false.

shouldControlTake(context): boolean

Default: () => false.

willControlPass(context)

Default: () => {}.

willControlTake(context)

Default: () => {}.

didControlPass(context)

Default: () => {}.

didControlTake(context)

Default: () => {}.

targetAppId

Default: 263902037430900 (Page Inbox).

License

MIT © Yoctol

Package Sidebar

Install

npm i bottender-handovers

Weekly Downloads

2

Version

0.3.0

License

MIT

Unpacked Size

15.2 kB

Total Files

25

Last publish

Collaborators

  • chentsulin
  • etrexkuo
  • tw0517tw
  • link515