slack-facebook-buddy

A bot that help send messages between Facebook and Slack optionally

Usage no npm install needed!

<script type="module">
  import slackFacebookBuddy from 'https://cdn.skypack.dev/slack-facebook-buddy';
</script>

README

What is this?

A program that can transmit messenges in slack to Facebook.
You can run this on c9.io

Getting started

Create bot account

  1. Register a new facebook account as robot.
  2. Add robot you created to an exsisting chatroom, get thread_id of that chatroom on the url by clicking Option->See Full Conversation.
    The URL will like this -> https://www.facebook.com/messages/conversation-<thread_id>
  3. Record the thread_id as we will need it after.

Installation on your server

$ npm i slack-facebook-buddy

An example

// index.js
var Buddy = require('slack-facebook-buddy');
var options = {
  account: {id: 'facebook_account', pwd: 'password'},
  router: {groupRouter: '/totest', group2Router: '/totest2'},
  threadID: {groupID: 123355678, group2ID: 123444444},
  nameList: {
    lockys: 'HAO-WEI',
    buddy: 'Good Friend',
  },
  delimeter: 'fb=', // Note that delimeter must equals to trigger word.
};

var buddy = new Buddy(options);
// login your bots!
buddy.login();
// You can set different routes for different channels and
// send messenges in slack to a specified chatroom(base on thread_id)
buddy.setRoute(options.router.groupRouter, options.threadID.groupID);
buddy.setRoute(options.router.group2Router, options.threadID.group2ID);
// start the bot.
buddy.startBot();
// re-login every 1 hr.
buddy.setLoginTimeOut(3600000);

About options variable
account Your robot's account and password.
router Specify router so that slack could post request to your post url.
threadID Every chatroom will have a thread id.
nameList A slack-id to facebook name mapping so that people in chatroom could know who is talking.

Run bot!
(Optional) You can use pm2 module to manage process.

$ pm2 start index.js
# or just
$ node index.js

You need to configure channel setting of Slack to make bot receive post req from Slack

  1. Open out-going webhook setting of your channel in integration panel.
  2. Set fb= as trigger word.
  3. Set your server's post url in url field.
    An example of post url according to your host: http://example.io/totest

LICENSE