GVSocialAdapter-Configuration
The Social adapter is an adapter which gives GreenVulcano® ESB the ability to interact with social platforms. The configuration is specified into the GVSocialAdapter-Configuration.xml, and the file has the following structure:
<GVSocialAdapterManager name="GV_SOCIAL" type="module">
<SocialAdapters>
<TwitterSocialAdapter class="it.greenvulcano.gvesb.....TwitterSocialAdapter"
social="twitter" type="social-adapter">
<Accounts>
<Account name="ACCOUNT_NAME" consumer_key="..." consumer_secret="..." twitteruserid="..."/>
...
</Accounts>
...
<Proxy proxyHost="" proxyPassword="" proxyPort="" proxyUser=""/>
</TwitterSocialAdapter>
</SocialAdapters>
</GVSocialAdapterManager>
The XML above shows the configuration for Twitter platform. The following table explains the configuration:
| Parameter | Meaning and values |
|---|---|
| TwitterSocialAdapter | One of the implemented adapters |
| TwitterSocialAdapter class | the adapter class |
| TwitterSocialAdapter social | the social platform identifier |
| TwitterSocialAdapter type | the adapter type |
| Accounts | wrapper for all the account configured for a single social platform |
| Account | single account configuration |
| Account name | the name identifying the account |
| Account consumer_key | OAuth parameter |
| Account consumer_secret | OAuth parameter |
| Account twitteruserid | user id on the social platform |
| Proxy | proxy settings |
| Proxy proxyHost | proxy host |
| Proxy proxyPort | proxy port |
| Proxy proxyUser | user for the proxy |
| Proxy proxyPassword | password for the proxy |
Social platforms use the OAuth to achieve the following goals:
- a user can control which permissions he/she can grant to the installed application
- a user can revoke such permissions at any time
- the user's credentials are not spread, the application has its own tokens
All the consumer tokens are specified into the configuration file for each account; the access tokens are defined by the GVConsole and are stored into a properties file.
The messages exchanged with the adapter have the following format:
- Request:
<SocialService>
<updateStatus account="ACCOUNT_NAME">
<attribute type="java.lang.String">Message to publish</attribute>
</updateStatus>
</SocialService>
- Response:
<SocialServiceResponse>
<updateStatus account="ACCOUNT_NAME">
<result type="java.lang.String">OK</attribute>
<error></error>
</updateStatus>
<flagGlobalErrors/>
</SocialServiceResponse>
The tag updateStatus in the XML above is referred to an operation available in Twitter, more exactly is the one called to send a tweet. Each operation available for a Social platform has its own XML tag and parameters, and it is presented in VulCon allowing to define data transformation.