Facebook and suggestions - facebook

I'm trying to write a simple application that finds out who liked your page. I used FQL and a query very similar to:
$query = 'SELECT user_id FROM like WHERE object_id="149187568469862"';
The first issue is that FB returns an empty array. Maybe the data will be available in the near future.
I will describe the most important issue. If the user X liked my page, I would like to know who suggested X to like my page. Maybe nobody, but there are chances that X pressed "Like" after a suggestion coming from a friend. I browsed the documentation, but I didn't find relevant information about how can I see who liked my page as a result of a suggestion. Do you have any ideas?
Thanks,

As far as I know you can not retrieve any historical information on who referred a "like". Furthermore, as of right now facebook does not seem to allow querying for all your pages "fans" (which is basically everyone who likes your page). They do, however allow looking up all pages that a user "likes" using fql. Much of their documentation is very "skinny" on examples. I actually learned the most by downloading the facebook connect javascript toolkit which came with some client side examples of the most used functionality. https://github.com/facebook/connect-js - this may be a good place to start

Related

How to get all user's likes using facebook's graph API

How can I query facebook's graph API to retrieve all user's likes (not only pages but also photos and others)?
For instance, how could I get all the pictures a user has liked? Using facebook's search bar you can find them easily by clicking on "photos has liked".
I wrote a script that scrapes the page content and does that but it's not very efficient.
I have recently come accross a similar problem, maybe this helps you solve it.
https://graph.facebook.com/v2.5/{page_id}/feed?fields=likes.limit(1).summary(true)&since={start_date}&until={end_date}&access_token={access_token}
This will give you a list of all posts that received likes during the specified time period. If you manage to write a code summing up the following JSON path you got your sum for "all user's likes":
data[0].likes.summary.total_count
Not entirely sure is this is exactly what you were searching for, hope it helps you though - and if not you, someone else.
As for likes you can also use the same way to extract Shares and Comments:
Shares
https://graph.facebook.com/v2.5/{page_id}/feed?fields=shares&since={start_date}&until={end_date}&access_token=
Comments
https://graph.facebook.com/v2.5/{page_id}/feed?fields=comments.limit(1).summary(true)&since={start_date}&until={end_date}&access_token=
Best regards
There isn't to my knowledge any way to get this from the API without grabbing every type of response from the API and then sorting through for likes. Facebook search bar uses an internal API different from the Graph API.

Is it possible to know who liked my website page/post?

I want to know who are the people who liked my websites page/post. (I'm talking about like buttons inside websites and not on a simple facebook page, just to make this issue clear).
I googled this issue, and most of the answers were that I just cant do something like this, but found one answer of someone who said that I can use this: https://developers.facebook.com/docs/reference/javascript/FB.Event.subscribe/v2.0
to find out who liked my website page/post, But he didn't explain.
I'm not an expert, but if that's true and I can pull out the names of the users that liked my website page/post, they should first accept that their private info is being passed to an outer source.
Anyway, I didn't understand anything from the page and how this thing should help me solve the problem.
Thanks for the help and your time :)
That's not possible IMHO. The events do not Return any user data, as described in the docs.
But if you're using the JS SDK and have authenticated Users on your website, you could use the "edge.created" event in conjunction with the Element ID of the like button to find out the user liked the page/post.

"Top Posts" depending on facebook likes

I have an idea to create a "top posts" feature to my website, which creates the "top" list depending on how many likes and shares that a post have on facebook.
Users may see how many likes an post has received so far since they only have to ask for a single, defined url. However, the website itself has to be able to query all the links that are tied to itself (which have a predefined url template like website.com/[post-id]) to create the "top" list. Is it possible to do something similar (or achieve the same result in a different way)?
Any ideas on a real workflow about something like this will be appreciated!
this seems like a little but interesting project. I don't know if there is a feature that could get that directly in the way you want, but i did something similar.
First you have the Graph API, with that you can get the Posts of a user using feed, with that every post is telling you how many likes does it have which you can get with POST_ID/likes.
Then you'll have to check for changes in the post periodically comparing its created_time and updated_time.
This could seem very hard, because you have a lot of posts and you have to check them all for updates, but you can use batch_requests so you can check them all at once.
I have made a bookmarklet which shows top posts in the Facebook News Feed as well as Google+, Twitter and Instagram Profiles.
Just add a new bookmark in your bookmarks bar and replace its URL with the following code and save it, then go to the social network website and run it:
javascript:(function(){var s=document.createElement('script');s.src='https://niutech.github.io/topnewsfeed/topnewsfeed.min.js';document.body.appendChild(s);})()
The source code is available on GitHub.

How do I get a list of friends who clicked "Like" on an external page?

PART A -
There are many many questions like this, but none of them seem to provide a working solution. I want to get a list of friends who clicked the Facebook "Like" button on an external site.
NOTE: This is NOT for a Facebook page. In this case, I know I can query the page_fan table.
To get the list of Facebook page-likes for example, I can use the url_like table. I guess I just want a way to invert this table. I know I cannot get a list of ALL people that liked a link due to privacy concerns, but I want a list of my friends alone - which should be fine.
I know facebook does this internally every time I see a Facebook Like button... right below that there is statistics about my friends that also like the same link. How do I get this using FQL?
PART B
Equivalently, how do I get a list of friends that shared a specific URL as a link? I cannot search the link table by url because that is not indexed. Also, the link_id is not the same as the Open Graph ID of the URL.
I tried select link_id from link where url="http://urladdress.com/a/b.html" and owner in (select uid2 from friend where uid1=me()) but that neither throws an error not returns anything... just stalls.
Part A: you can't.
Part B: you can't the way you are trying. You might be able to get the feed for every one of the users friends and look for that url from their feed, but it will be painfully slow.
Lots of people would like to know this but Facebook is (rightfully so) not giving this information out. That is why you see lots of questions regarding it but no working solutions.
You could possibly look into the read_insights permission. You might not be able to get the exact information about "likes" (yet)... but you will be able to get other possibly useful information.

Facebook Fan since?

I wondered if there is any possibility to figure out since when a fan on Facebook is a fan? The only idea I came up with was to crawl the whole feed of a fan page and track the first like of a wall post. However, this approach is not very accurate.
Any ideas?
I'm not sure if it only applies to web crawlers but I do know the FB is on the "Do Not Crawl" list (robots.txt) so it may be illegal to do so. I know you are trying to find an alternate way to do so but just in case nobody else answers I wanted to make it clear that it may be illegal to crawl the page and you probably want to look into that before doing so.
If you look at the Graph API for a User (see https://developers.facebook.com/docs/reference/api/user/) there is the Likes connection which returns the created_time for each of a user's likes. This is really the only reliable way to determine WHEN a user first liked an object.