How to get localized values from Facebook Open Graph API through Koala? - facebook-graph-api

I am using the koala gem in my rails app to use the Facebook Open Graph API.
The primary language of the app is German.
Is there a way to set a locale to get e.g. the user's current city in German? Or is there another reliable wa to translate locations?

The Graph API supports the passing of the locale parameter. For Germany, this would be de_DE.
You can test this via
GET /me?fields=location&locale=de_DE
compared to
GET /me?fields=location&locale=en_GB
Have a look at
https://developers.facebook.com/docs/internationalization
https://developers.facebook.com/docs/graph-api/using-graph-api/v2.0#readmodifiers
https://developers.facebook.com/docs/opengraph/guides/internationalization/
Keep in mind that the translations are not always available, especially for OpenGraph objects.

Related

Facebook API for custom feelings/activity

I was searching in the Facebook API documentation, but I can't find what I am looking for. So, what I am looking for is is there an API for creating your custom DO action. For example:
John Johson is riding a bike.
What I want is to send this 'riding' as a custom word coming from my app. And also 'bike' as a custom item as well.
The other example I can think about is the running apps in Facebook. When you start to run and connect the app with your Facebook the app can say.
John Johson is running using Runtastic.
Thanks!
Well, you’re a little too late on that one.
That used to be possible, it was called Custom Open Graph Actions - https://developers.facebook.com/docs/sharing/opengraph/custom
But those are now deprecated, you can not use them any more in new apps (and for existing ones, they will be removed within a year as well), see https://developers.facebook.com/docs/sharing/opengraph/custom-open-graph-deprecation
Now you can only use the built-in actions and objects, https://developers.facebook.com/docs/reference/opengraph

How can I get the name of my app reliably from the Facebook Marketing Api

I am trying to retrieve my app campaigns and their associated apps with their events via my advertiser account.
The problem is that I am unable to find a unique identifier for my app in the API response.
For example the query below will get me the 'action_target_id'. This would either equal my AppId or another numeric string which I don't know what is. I am confused, does it mean I have two AppIds?
act_<AD_ACCOUNT_ID>/reportstats?time_interval={"day_start":{"day":"01","month":"03","year":"2014"},"day_stop":{"day":"07","month":"04","year":"2015"}}&data_columns=['adgroup_id', 'actions','action_target_id','action_target_name','campaign_name']&actions_group_by=['action_device','action_type']&format=json&async=true
What are 'action_target_id' and 'action_target_name' meant to represent (in the context of running a campaign for a mobile app)? I cannot seem to find a clear explanation for this in the API doc.
The applications/developer edge will return applications your account has access to.
As for your second question, the action_target_id and action_target_name are not always your application. It depends on what the action specs of each campaign is, if even set. An 'action spec' is a FB format for defining relationships between an ad and various objects for various purposes. More about that at https://developers.facebook.com/docs/marketing-api/intro-action-specs
In your case, the action spec in the context of a mobile app ad campaign will probably be the FB application. See also default conversion spec and default tracking spec.

Facebook SDK for .NET and Graph API Explorer news feed mismatch

And application is using facebook sdk to get user newsfeed via client.Get(request_string) where request_string = "/me/home<some_filters>". And I discovered that sdk and api exprorer return different results with the same request string. Why can it happen?
This is similar to this question.
Some posts not visible on the feed through Graph API /me/home
The reason is Facebook "scores" nodes to derive the most "Top Story". Low scoring nodes are by default not visible. You can force all nodes with
/me/home.filter(owner)<some_filters>
There is no documentation on WHY this actually works, but it does. You can also force all nodes that are Likes or Comments by doing the following
me/posts?fields=likes.filter(stream),comments.filter(stream)

Get locale using graph api NOT getSignedRequest

I know it is possible to get the locale of the user with getSignedRequest, and it is possible to get the locale of the user with https://graph.facebook.com/me?fields=locale once they have authorised the app. But what is the equivalent graph api url that I can use before they have authorised the app? All my code is with the graph api so I really dont want to have to switch now to using the whole facebook->getSignedRequest() stuff. I can't find it anywhere but seems silly this functionality has not been provided in graph api?
You have to pick between using the signed_request (which is sent in a POST request to all apps on Facebook) or authorizing the user.
If you don't do one of these, then you won't know what the Users ID is, so you will never be able to identify their locale.
The signed_request just requires you to be able to capture request data and then perform the parsing logic outlined in the doc linked to above - it doesn't require the use of any SDK or API, just the ability to read requests (most languages will be able to do this).

Get new profile cover with sdk

Is it possible to get and to change the new porfile cover (mine or my friends' profil cover) with the sdk php or JS ?
It is possible to get the Facebook's user cover image using the Graph API. You have to add 'fields=cover' to the user request. The response is an array of fields id, source, and offset_y. You need an access token for this.
You cannot update the cover photo using the API, only retrieve it.
http://graph.facebook.com/[USER_ID]?fields=cover
It's still not possible with the current APIs exposed by Facebook.