A Facebook batch API request allows the caller to specify multiple API endpoints in a single HTTP POST.
The post is made to a base URL: https://graph.facebook.com.
The body of the post contains a JSON hash with relative URLs to call in the "relative_url" field, e.g. "me/feed".
How do I specify an API version in this call?
For example, to hit the 2.2 version of the API, do I post to https://graph.facebook.com/v2.2/ or do I specify "v2.2/me/feed" in the relative_url?
As of Feb 26, 2015 the Facebook API documentation is not clear on this point: https://developers.facebook.com/docs/graph-api/making-multiple-requests
In the App Dashboard Settings > Advanced, scroll to the Upgrade API Version section.
Selecting the version via the Developer HubGo to your Developer Hub and choose the relevant app. Then go to the Api Version menu, click on the Change version box and select your new version. Once you have selected the appropriate version for your app all subsequent API requests will use this version.
API versioning is the practice of transparently managing changes to your API. Versioning is effective communication around changes to your API, so consumers know what to expect from it. You are delivering data to the public in some fashion and you need to communicate when you change the way that data is delivered.
The API version is listed with the release of each version of the Facebook SDK for Android. Much like the JavaScript SDK, the version is prepended to any calls you make to the graph API through the Facebook SDK for Android.
You probably have to put in the relative url . Here's an example from the marketing batch API docs
curl -F 'access_token=______'
-F 'test1=@./test1.jpg'
-F 'batch=[
{
"method": "POST",
"name": "create_creative",
"relative_url": "<API_VERSION>/act_187687683/adcreatives",
"attached_files": "test1",
"body": "title=Test title&body=Test body&link_url=http://www.test12345.com&image_file=test1.jpg"
},
{
"method": "POST",
"relative_url": "<API_VERSION>/act_187687683/adgroups",
"body": "campaign_id=6004163746239&redownload=1&bid_type=CPC&bid_info={\"clicks\":150}&creative={\"creative_id\":\"{result=create_creative:$.id}\"}&targeting={\"countries\":[\"US\"]}&name=test1"
},
{
"method": "POST",
"relative_url": "<API_VERSION>/act_187687683/adgroups",
"body": "campaign_id=6004163746239&redownload=1&bid_type=CPC&bid_info={\"clicks\":150}&creative={\"creative_id\":\"{result=create_creative:$.id}\"}&targeting={\"countries\":[\"GB\"]}&name=test2"
},
{
"method": "POST",
"relative_url": "<API_VERSION>/act_187687683/adgroups",
"body": "campaign_id=6004163746239&redownload=1&bid_type=CPC&bid_info={\"clicks\":150}&creative={\"creative_id\":\"{result=create_creative:$.id}\"}&targeting={\"countries\":[\"IE\"]}&name=test3"
}
]' https://graph.facebook.com/
I'm assuming this is common to other requests as well.
Various other sources for reading
1.) From here
Pre-pend the version identifier to the start of the request path. For example, here's a call to v2.2:
GET graph.facebook.com /v2.2/me
This works for all versions, in this general form:
GET graph.facebook.com /vX.Y/{request-path}
2.) Putting it in the url seems to be for Dialogs and Social plugins
Dialogs
Versioned paths aren't just true for API endpoints, they're also true for dialogs and social plugins. For example, if you want to generate the Facebook Login dialog for a web app, you can prepend a version number to the endpoint that generates the dialog:
https://www.facebook.com/v2.0/dialog/oauth? client_id={app-id} &redirect_uri={redirect-uri}
Social Plugins
If you're using the HTML5 or xfbml versions of our social plugins, the version rendered will be determined by the version specified when you're initialising the JavaScript SDK.
If you're inserting an iframe or plain link version of one of our plugins, you'd prepend the version number to the source path of the plugin:
<iframe src="//www.facebook.com/v2.0/plugins/like.php?href=https%3A%2F%2Fdevelopers.facebook.com%2Fdocs%2Fplugins%2F&width&layout=standard&action=like&show_faces=true&share=true&height=80&appId=634262946633418" scrolling="no" frameborder="0" style="border:none; overflow:hidden; height:80px;" allowTransparency="true"> </iframe>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With