Integration with Facebook using Mule ESB

  • Written By WHISHWORKS
  • 10/06/2015

Overview

Facebook is a social networking website launched in February 2004. A user must register before they can use Facebook. After registering users can create a user profile, add other users as friends, exchange messages, post status updates and photos, share videos and receive notifications when others update their profiles. In this blog post, a step by step process of integrating with Facebook using Mule ESB Facebook connector is shown.

Versions and Assumptions

  • In this blog post, we are using
    • Facebook Connector 2.3.4
    • Anypoint Studio
    • Mule ESB Server 3.5.2
  • To use this application in the project, we will need a Facebook account for testing
  • We need to create a new Facebook app under Facebook developer apps to be able to communicate with the Facebook account from Mule ESB application
  • We will be using OAuth2 authentication to connect to Facebook using Mule ESB Facebook Connector

Configuring Facebook App

  • Go to https://developers.facebook.com/
  • Click on My Apps
  • Click on Create a New App button
  • Add a unique display name, namespace and select a category
  • Click on Create App Id
  • Click on Show button and make a note of the App ID and App Secret. The App ID and App Secret will be used later in Mule Facebook Connector configuration

A sample screen shot for the Facebook app is given below.

Facebook App Configure

Integration with Facebook using Mule ESB

Configuring App ID

Integration with Facebook using Mule ESB

Configuring Facebook Connector

  • Create a new Mule Application
  • Click on Global Elements tab in your main flow
  • Click on Create Button
  • Select Facebook under connector configuration group
  • Add Facebook App ID value to consumer key text box
  • Add Facebook secret key value to consumer secret text box
  • Leave the scope text box empty. The default value for scope is “email,read_stream,publish_stream” which covers most of the access permissions
  • Click on Oauth tab and specify domain, local port and remote port values.

A sample screen shot and XML configuration is given below.

Facebook Connector_1

Integration with Facebook using Mule ESB

Facebook Connector_2

Integration with Facebook using Mule ESB

<facebook:config-with-oauth name=”Facebook” consumerKey=”${ConsumerKey}” consumerSecret=”${ConsumerSecret}” doc:name=”Facebook”> <facebook:oauth-callback-config domain=”localhost” localPort=”1100″ remotePort=”1100″ /> </facebook:config-with-oauth>

Mule Flow for Facebook Authentication

  • Configure a flow as shown below
Integration with Facebook using Mule ESB
<flow name="AutorizeFacebook" doc:name="AutorizeFacebook">
<http:inbound-endpoint exchange-pattern="request-response"
host="localhost" port="5555" doc:name="HTTP" path="facebookupdate" />
<facebook:authorize config-ref="Facebook" doc:name="Authorize" />
<choice doc:name="Choice">
<when expression="flowVars.OAuthAccessTokenId != null">
<logger message="Authorization Successful" level="INFO"
doc:name="Logger" />
<set-payload value="Facebook Authorization Successful"
doc:name="Set Payload" />
</when>
<otherwise>
<logger message="Authorization Failed" level="INFO" doc:name="Logger" />
<set-payload value="Facebook Authorization Failed"
doc:name="Set Payload" />
</otherwise>
</choice>
</flow>
  • If the app authorizes in to Facebook successfully, the connector returns two flow variables to Mule ESB flow which are “_oauthVerifier” and “OAuthAccessTokenId”
  • Using Choice router, we can check whether the flow received an “OAuthAccessTokenId” or not and based on the response we would be able to determine the success or failure of the Facebook authorization.

Testing and Observation

  • Deploy the app
  • Hit the following URL on the browser

http://localhost:1111/facebookauthorize

  • Facebook will ask us to authorize the new app to connect to Facebook. This authorization will be needed only on the first time when running the application.
  • Click on Okay button and we should see a message on the browser as “Facebook Authorization Successful”
  • In order to publish or post a message on Facebook, we will need to submit the app for review and request for “publish_stream” access on developer app.

If you would like to find out more about how Systems Integration could help you make the most out of your current infrastructure while enabling you to open your digital horizons, do give us a call at +44 (0)203 475 7980 or email us at marketing@whishworks.com

Other useful links:

Integration with Twitter using Mule ESB

Integration with LinkedIn using Mule ESB

Integration with Dropbox using Mule ESB

Latest Insights

Salesforce CRM for the public sector
Blogs

CRM for Citizen Relationship Management

While the times have been changing for a while, current events have accelerated the need for public agencies to adapt to a changing world.

Open banking APIs
Blogs

Open Banking – How APIs are fast-tracking growth

When it comes to reaching market faster and scaling with both speed and stability, APIs have been a crucial component of many Fintechs.

Big Data Investment Drivers
Blogs

Key drivers of Big Data investment in 2020

Since 2019, key developments such as COVID-19 have influenced investment trends in Big Data. Drawing on insights from WHISHWORKS’ Big Data Report 2020 we outline the key drivers of investment in Big Data this year.