Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I use the same bot on multiple facebook pages using bot framework

I have several facebook pages and I would like to run the same bot on each page. I am using the bot framework and everything works perfectly for one page now. How do I associate with multiple pages?

like image 567
PirateApp Avatar asked Jan 16 '17 12:01

PirateApp


People also ask

How does a bot work on Facebook?

In the simplest terms, a bot is a small application that works inside popular messaging program, in this case Facebook Messenger. Once it is built and installed, the Facebook bot can automatically interact with users, allowing website visitors to access a wide range of services.


2 Answers

When you call the Facebook Send API, you pass a page access token through the access_token parameter. You can specify which page to direct your message by modifying this access token. To know which page initiated the message, you can access the id field of the entry of the message post.

app.post('/webhook', (req, res) => {
    const data = req.body

    // Make sure this is a page subscription
   if (data.object === 'page') {
       // Iterate over each entry
       data.entry.forEach((pageEntry) => {
           // get the pageId
           const pageId = pageEntry.id
           ...

You would then need to maintain an object mapping page ids to the access token associated with each page id:

const accessTokens = {
    myPageId1: 'myPageAccessToken1',
    myPageId2: 'myPageAccessToken2',
}

Then when sending the response, just specify the corresponding page access_token

const callSendAPI = (pageId, messageData) =>
    rp({
        uri: 'https://graph.facebook.com/v2.8/me/messages',
        qs: { access_token: accessTokens[pageId] },
        method: 'POST',
        body: messageData,
        json: true,
     })
like image 167
Danny Sullivan Avatar answered Oct 10 '22 20:10

Danny Sullivan


Sorry if my answer is late

You can very well handle all your page traffic through just one bot backend

  1. Create an fb app and select product as messenger
  2. Add webook config pointing to your bot
  3. Select all the pages you want to associate one by one And keep the page access token handy.
  4. Go and search page id in your fb page and keep it handy
  5. Either in constant or dB maintain page access token against the page I’d
  6. When you get a callback on webhook you get a page entry and Id== page id
  7. Based on page I’d have your business logic
  8. Call send api using page access token which you have stored againtst the page id

Hope this helps

like image 39
Madhusudhan Mahale Avatar answered Oct 10 '22 22:10

Madhusudhan Mahale