How do I create multiple Facebook bots with a single platform? - facebook

I have a Facebook bot and I have connected it with a Facebook page. However to have it publicly available I have to wait the approval from Facebook.
Not a problem if you have to make one single bot, huge problem if you have to do it on scale level (eg: 100+ bots).
Platform as Chatfuel or Content Api allow you to just select the page you own and connect the bot automatically.
In minutes the bot is publicly available, skipping the review phase (apparently) in Facebook.
I didn’t find any info about that on the Facebook developer guide, there is a sort of internal API not available for everyone? If so how can you request access to that?

Facebook Messenger bots are published for a page (which is the bot identity) using one or more applications (which defines the webhook where messages are sent).
So the application must be reviewed and approved by Facebook. After that, any page can be 'attached' to this application, using the standard Facebook authorization flow in order to get an access token for this page by the approved application.
So Chatfuel and others alreay have their application approved, and now any page can be connected to it.

Related

How to solve the problem with Facebook Login restriction due to violation of the policy

Now, My Facebook Login API has been restrict with the following message from Facebook:
Your app is violating the following Platform Terms or Developer
Policies: Developer Policy 1.2: Build an app that is stable and easily
navigable.Some common violations of this policy include:
Broken Facebook integration (e.g. broken share, like or comment functionality)
Broken user experience in the app (e.g. app has broken links or user interface failures)
I still have no clue what I have done wrong on my Facebook API though.
How can I make a change on Facebook API to solve this kind of problem that causes Facebook to restrict by Facebook Login API.
That may be due to the following reason:
Facebook periodically reviews the websites and applications which are
on it. Your application is in its review process currently. We are
required to test the Facebook login functionality in order to conclude
the review in totality. However, we are unable to do so.
Unfortunately, we have not been able to locate a Facebook integration
(Login, Share, and Like) on your submitted platform. To help us
conclude the review process, could you kindly share the details
regarding the location of a Facebook integration and how to navigate
to it on your website URL.
This review is essential to Facebook as we want to offer the best
experience to users as well as developers like yourself. Please help
us in bringing your application into compliance by working with us.
Alternatively, you could aid us by sending us credentials of a test
user who is already registered and connected to an FB account within
the app. You can get all the information related to creating a test
user here - https://developers.facebook.com/docs/apps/test-users.
Most people get this response in further detail. You can check the Facebook button on the given URL in the Facebook app.
If Facebook button URL is different and the URL mentioned in the Facebook app is different then you should reply to them and explain it.

Why is the Instagram Graph API webhook not working

I am not able to get webhook calls when another user post a comment (with mentions) on another/my media.
Just for testing purposes I set up a ngrok server for my webhook endpoint, which always answers with a 200 and handles the verfication. Before the heavy coding I just wanted to see if the webhook workflow for Instagram is generally working.
I created a Facebook app, an Instagram business account, a Facebook page and linked the page with the Instagram business account. With the information at Webhooks for Instagram I created a page access token with the Graph API Explorer. When I debug the token with the Access Token Debugger, everything looks fine. All needed permissions like manage_pages, pages_show_list, instagram_basic, instagram_manage_comments, instagram_manage_insights, public_profile are there. With the page access token I am able to fetch all informations regarding my linked Instagram business account via the Graph API Explorer.
Also the Instagram product was automatically added to my Facebook app. Test requests, which where send via the app dashboard (Webhooks product), will be received by my ngrok server. But any type of mentions or comments from another or my Instagram account (business or not) on my or other medias will not be received. What am I doing wrong? Do I have to send those comments/mentions from a specific account, since the app is in development mode and there roles in the app?
After speaking with the Facebook support, my confusion has been resolved.
The problem is that the Webhook for the Instagram product does not work without a verified app review. I had been wondering how to record a screencast with my running solution, without running webhooks... Above all, I had wondered why the webhooks in dev mode worked for the product messenger but not for instagram (or others). Apparently, the app review is not about the technical implementation but rather about checking that the implementation complies with the facebook guidelines. Therefor I want to quote the Facebook support:
Messenger does allow page owners and app admins to receive webhooks for their implementations in devmode and is by design. However, this is not the same for instagram or pages. This is just how the product teams have decided to implement it. For app review, you can show a mock process of the flow, using either the test webhook or your own process. The app review is less about technical implementation steps, but just a way to make sure that your app is going to use the permission in a way that follows our guidelines, so mocking the procedure should be fine. The reviewers understand that you do not receive webhooks in dev mode and should take this into consideration.
Consequently, I will now have to submit an app review and for that I have to imitate the webhook.

How to make a messenger chat bot without a facebook app and webhook?

I went through the documentation for creating a chatbot for messenger platform.
All I find there, I need a server, which in the case used as a service for the Facebook platform.
The server also validates the webhook from facebook app.
Now I see, for a chatbot, I need a facebook app, webhook server and definitely a facebook page.
Then I find an application Flow XO, where I only put the page name and the bot is ready.
My question is, how they(flow.xo) can communicate facebook page without a Facebook app(appId, appSecret) and webHook.
My question is, how they can communicate facebook page without a Facebook app(appId, appSecret) and webHook.
They can’t.
They use their server and their app to communicate with the API, on behalf of the users that grant them access to their pages, by providing the necessary permissions when they log in to that app.
Facebook allows to create a Facebook App which integrates multiple chatbots. At Amio, we ask you for permission using Facebook OAuth. When you give us these permissions we send and receive message on your behalf. This allows you to create a chatbot using Amio API without need of creating a Facebook App.
Facebook Page is always needed as this is the entry point of users interacting with your bot. You can check Amio documentation for more detail.

Questions about FB chatbot app review

I have an FB app ready for app review. That app provides basically a chatbot.
I have 2 questions:
1 - Can I set a webhook of a staging bot instance that is connected to a staging core system to which an FB user can authenticate using specific credentials. I ask this because I don't want to provide Production credentials to the FB reviewer.
2 - Can I provide the reviewer with a test FB page, or do I need to provide the final FB page?
In case of affirmative answers to both questions, when I set Production webhook URL and FB page, do I need to resubmit app review?
Thanks
when I set Production webhook URL and FB page, do I need to resubmit app review?
You can change your webhook URL at any time, that doesn’t require review. And what page(s) you subscribe your bot to doesn’t either.
Review is about the functionality your app provides, and how it uses the data it gets access to. Simply switching out the URL you receive the webhook request under, or which page(s) your bot is running on, is not relevant in that regard. That you switch from a test page to a live page after you got it successfully reviewed might rather be the norm than an exception. Plus, your bot can be used on multiple pages, so that you add others later on is also an expected use case.

How to request page messaging permissions on facebook apps?

When using facebook apps like chatfuel and manychat (which are bot creation platforms), these apps request permissions that allow them to manage my pages and send messages.
I want to create a similar app that allows users to send messages from their pages through my app, but I can't find how to request such permissions in Facebook's documentation.
You need to be given the administrator role for each Page, then connect your app to the Page and generate a page-scoped token for each one.