This is part of a series of “Bot Making Tools Assessment” findings from the ‘How To Build A Bot With The Right Kind Of Tools‘ article.
Checkout the rest of the series by following these links:
- Chatbot Building Platforms
- Facebook Chat API (this article)
- Microsoft Bot Builder SDK
- Synthetic Intelligence Markup Language with OSCOVA
The official Facebook Messenger Platform API was launched on 25 March 2015 at F8 conference, and since then there has been a slew of online services catering to Facebook Messenger Bot Building. All these online services connect to Facebook via the developer APIs (using REST protocol) and the development language of their developer’s choosing. The documentation have improved a lot since version 1.0 . At time of writing, Messenger Platform API is version 2.1.
The approach Facebook is taking with bots is a lot more aggressive and driven as they have a much wider and diversified use case & user base compared to Skype at time of writing (no surprise here, technically they are also Social Media Platform, and “not just a messaging channel”). Judging from the way Facebook is marketing their Messenger Platform and recent acquisitions in Artificial Intelligence related companies (they acquired Wit.ai and has integrated NLP features within the platform), this is a very interesting space to lookout for as they will also likely be the ones to introduce something new and developers can sign up for beta provided certain conditions are met.
If you live on the bleeding edge and love to play catch with the “latest and greatest” from Facebook, this is the way to go.
Be warned, these developer APIs are very granular and in no way “a complete solution” to bot building. The developer will need to plan and develop for “everything else” (API monitoring, Database connectivity). The benefit of knowing the developer APIs well does pay off in the long run, especially when the platform is in the lead in the bot space.
A few caveats:
- Bear in mind that the developer may need to figure out additional plumbing especially when it comes to session context / database backends, as they don’t really have a “do it all code library” like Microsoft Bot Framework.
- Also, specifically for developers that are outside the U.S, there are certain features that are not available to the rest of the world unless “your business address is in the U.S. or your Page Admin is based in the U.S”.
- The developer has to remember to request for specific permissions to use specific Messenger API platform features when the app is open for public use.
- They have strict (and lengthy) policy and branding guidelines the web application must adhere to, otherwise any requested permissions will not get approved as quickly as it should. Especially for Messenger APIs, it is not just making sure it works and performant technically, the developer also needs to put some effort in the copywriting and user experience as well.
- The developer will have added requirements for maintainability of code as Facebook may cease support for old API versions over time.
- Compared to Chatbot Building Platforms, the developer has full control over the data and where the bot is hosted, and do not have to deal with external service imposed limits except for Facebook API. It is clearly stated in their documentation that any usage of their Facebook API can be rate limited, and if the Facebook Page & App is found to have abused the API by not adhering to their policy (the big red marker here is broadcasting), they reserve the right to block the API request.
Suggested Use Cases:
- Lead Generation, customer service & e-Commerce (simple followups).
- Advanced / experienced developers has the flexibility to implement complex complex logic or flows that require session context / database back end given enough time and resources. If time is not a luxury, then do consider utilizing Microsoft Bot Framework instead (click here to read my assessment) .