2.0.0 • Published 6 years ago

@genie-ai/genie-router-plugin-facebook-messenger v2.0.0

Weekly downloads
2
License
MIT
Repository
github
Last release
6 years ago

A genie-router plugin that enables the use of Facebook Messenger as a client.

Configuration

SSL

Facebook requires that your genie-router instance listens on a https URL. There are plenty of methods to achieve this, but here are two options:

  1. Use a proxy tool like ngrok or localtunnel to get a public endpoint that supports https
  2. Setup an apache or nginx webserver that will act as a reverse proxy. You can use letsencrypt to configure a URL with https/ssl.

Facebook

First, make sure that your genie-router installation has the http module enabled and is accessible via https (facebook requires this for webhooks). One option is to place genie-router behind a webserver (apache or nginx) via a reverse proxy. This way, the SSL/HTTPS is handled by the webserver.

Then, follow the Getting Started guide to create your App and Page. Remember what you configure as the verifyToken.

Check messages as the webhook subscription. Configure the webhook URL as https://<yourdomain.com>/facebook/messenger. The verify token should be what you are going to configure in the genie-router config.

The configuration should already be in place and genie-router restart for the verify token to be configured and Facebook to accept the webhook URL.

genie-router

At the plugin location ($HOME/.genie-router), type:

npm install --save @genie-ai/genie-router-plugin-facebook-messenger

This plugin needs to be configured in the plugins section of genie-router. There are three properties that can be configured.

  • accessToken, the pageAccessToken generated by Facebook when configuring the FB app
  • verifyToken, the verifyToken you configured for the webhook
  • password, an optional configuration parameter, that requires users to identify themselves with a password before they can send text to genie-router.

The password configuration attribute is optional, and can be used to require a password before someone can send commands via Telegram. A hash of the password is stored in the persistent storage, so that the user can be automatically granted access in a next session. A user has to type the password anew when the password changes in the configuration.

To not require a password, simply remove the attribute or set it to null.

Example config

{
  "plugins": {
    "facebook-messenger": {
        "verifyToken": "genierouter",
        "accessToken": "xxx",
        "password": "secure-4-me"
    }
  }
}