messenger-core

Write-once, run anywhere Messenger bots, powered by plugins.


Keywords
facebook, messenger, bot, bot-api, bot-framework, chatbot, facebook-messenger-bot, messenger-api, messenger-bot, messenger-chatbots, messenger-platform, messenger-server, nodejs-framework
License
MIT
Install
npm install messenger-core@0.1.2

Documentation

Build Status NPM version Greenkeeper badge

messenger-core

Write-once, run anywhere Messenger bots, powered by plugins.

Features

  • Universal. Build your bot once, run it anywhere. Works with Micro, Express, Koa, Restify, Hapi and any other web framework.
  • Powered by plugins. Build your bot with re-usable plugins, or write and share your own.
  • Solid. 100% test coverage.

Implementations

Framework Package Links
Express express-messenger ✓ Github · NPM
HAPI hapi-messenger TBD
Koa koa-messenger TBD
Micro micro-messenger ✓ Github · NPM
Restify express-messenger ✓ Github · NPM

Architecture

+--------+--------+--------+--------+--------+
| plugin | plugin | plugin | plugin | plugin |
+--------+--------+--------+--------+--------+
|               messenger-core               |
+--------------------------------------------+
----------- ----------- ----------- ----------
  express      micro        koa        hapi
----------- ----------- ----------- ----------

Plugins

Plugins add useful features and functionality to your bot. They are the central building blocks that make your bot a bot.

  • messenger-req-log use req.log for logging
  • messenger-page-token get the receiving page’s page access token
  • messenger-user-profile get sender’s user profile
  • messenger-send add send methods
  • messenger-intl i18n support

** Documentation is Work in Progress **

Installation

$ npm install --save messenger-core

Usage

const app = require('express')()
const messenger = require('messenger-core')

Message Types

Postback message

{
  topic: 'postback.SHOW_FLIGHTS'
  data:  <parsed JSON payload>
}

quick_reply message

{
  topic: 'quick_reply.BOOK_FLIGHT'
  data:  <parsed JSON payload>
}

Text message

{
  topic: 'text'
  data:  'Hello, World!'
}

Use cases for plugins

  • Load the user’s profile data from facebook
  • Store user data in your own database

JSON payloads for postback and quick_reply

Supported Events

| Webhook Event | Description | |-------------------------------------------------------------------------------| | messages ✓ | Subscribes to Message Received events | | message_deliveries | Subscribes to Message Delivered events | | message_reads | Subscribes to Message Read events | | message_echoes | Subscribes to Message Echo events | | messaging_postbacks ✓ | Subscribes to Postback Received events | | messaging_optins ✓ | Subscribes to Plugin Opt-in events | | messaging_referrals ✓ | Subscribes to Referral events | | messaging_checkout_updates (BETA) | Subscribes to Checkout Update events | | messaging_payments (BETA) | Subscribes to Payment events | | messaging_account_linking | Subscribes to Account Linking events | | messaging_policy_enforcement | Subscribes to Policy Enforcement events |

License

MIT © Andreas Pizsa