npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@genie-ai/genie-router-plugin-facebook-messenger

v2.0.0

Published

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

Downloads

6

Readme

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"
    }
  }
}