Getting user's liked pages - facebook

I've been digging on Stackoverflow for hours now and found no solution:
I want to get pages that a user liked using the page_fan table.
However, that user is not my friend - is it possible? I think it might be because when i go the user's profile I can see all the pages he liked but not using FQL...Any advice?
Tnx.
Shai.

Yes, that is possible as long as the user gave your app "user_likes" permission. See very beginning of below page:
http://developers.facebook.com/docs/reference/fql/page_fan/

query:
SELECT name, about, description, keywords, pic_cover, pic_large FROM page
WHERE page_id
IN (
SELECT page_id FROM page_fan
WHERE uid =me()
)
This query will return data for each of the pages a user that is using your app has liked.

Related

Get all facebook ids of people who like our facebook page

How can we get a list of facebook ids of all the people that like our page?
Can we write some kind of code that goes over the page and gets them?
You can't get a list of ALL the users who have liked a particular page using the Graph API or FQL.
However, you can get a count of number of users who have liked your page by using:
SELECT fan_count from page where page_id = {page_id}
And you can also check whether any of the user in your friend list has liked a particular page or not (this requires additional friends_likes permission). This can be done by using:
SELECT created_time from page_fan where
page_id = {page_id} AND uid IN (uid1, uid2, ...)
EDIT: Just found out there's already a discussion going on regarding this on Stack Overflow. Take a look at this question: Facebook API: Get fans of / people who like a page

How can I take the like pages from an user of Facebook?

I have a problem. I am using fql to get user information. I want to take the pages the user has liked.
https://developers.facebook.com/docs/reference/fql
I have been investigating all tables, but I have not seen what I wanted.
If you know how can I do it, that would be fantastic.
Thank you!!
You want the page_fan table
https://developers.facebook.com/docs/reference/fql/page_fan
uid should be an indexable field
here's a sample FQL query to get you started
select page_id,name from page where page_id in (select page_id from page_fan where uid=me())
https://developers.facebook.com/tools/explorer?fql=select%20page_id%2Cname%20from%20page%20where%20page_id%20in%20(select%20page_id%20from%20page_fan%20where%20uid%3Dme())

Getting a list of everyone that likes a link.

If I create a page, is it possible to get a list of all the people that like that page on facebook. For example, if I create http://www.facebook.com/honeybadger, as an admin can I get a list of everyone that likes it?
You can't get a list of users who like a URL or Facebook page anymore. Facebook has gone and taken the page_fan and url_like tables and made the only indexable column on these the uid field.
Trying something like this
SELECT uid FROM page_fan WHERE page_id IN (SELECT page_id FROM page WHERE username = "honeybadger")
Throws an OAuth exception: "Your statement is not indexable. The WHERE clause must contain an indexable column. Such columns are marked with * in the tables linked from http://developers.facebook.com/docs/reference/fql"
The only thing you can do is create an app, have users authorize your app, then test if an authenticated user likes a specific page or link. If you ask for the right permissions, you can also test to see if their friends like your app.
This change was implemented to prevent spammers from harvesting Facebook IDs from their page fans or url likers.
The Facebook documentation seems to give the exact answer to your question.
https://developers.facebook.com/docs/reference/fql/like/
SELECT user_id FROM like WHERE object_id = <INSERT_FACEBOOK_OBJECT_ID_HERE>
simpler way is to get it thru graph api
https://graph.facebook.com/honeybadger/likes?access_token=valid_access_token

Obtaining Facebook Likes for Multiple Users using FQL

I'm trying to replicate the results of the graph api call:
graph.facebook.com/[fbid]/likes
using FQL so that I can obtain the likes of multiple people using a single call. Anyone know if this is possible / how to do it?
FQL can supposedly support multiqueries. Check out this page:
FQL Multiquery
which says:
"query2":"SELECT name, url, pic FROM profile WHERE id IN (SELECT uid FROM #query1)"
You can use SELECT page_id,name FROM page WHERE page_id IN (SELECT page_id FROM page_fan WHERE uid in (....). Hope this was helpful. I found the answer in this discussion. Since this was one of the first pages I came across, I thought I should link it to the answer

Get Facebook Link Likes

Using the Facebook API with the FQL language, how can I get a list of the users that liked a given URL? I got the URL and want to query Facebook to see how many people and what users liked that URL.
Using PHP or ASP.Net... doesn't matter, just want to know how to write the FQL query.
Sadly this data isn't available. What's possible via the Link Graph API objects and the link FQL table is just retrieving a given instance in which a link was shared by a user. You can get the count of likes on a user's posting of a link, but this likely isn't what you want.
Discussed this 3-6 months ago with guys at Facebook, and the consensus then was also that getting this data via API is impossible. As far as I know things haven't changed, and there are some privacy arguments for keeping this data out of the API.
'SELECT user_id FROM like WHERE object_id IN (SELECT link_id from link WHERE url = 'YOUR URL HERE' AND owner = 'YOUR USER ID HERE' '
Like FQL Table
Link FQL table
In order to access user's likes, the application needs to have user_likes permission from the user. After that if you access http://graph.facebook.com/me/likes with appropriate access tokens, all the object IDs (including external websites), the current user has liked will be listed.
(this is in reply to bounty question, which seems a bit different from the original question asked on this page)
It's not using FQL but...you can see the most recent 500 users that have like your page by going to: https://www.facebook.com/browse/?type=page_fans&page_id={id} but you would have to scrape this to get the information and it won't work for more people besides the most recent 500. Here's the gotcha, you've gotta be an admin of the page_id to see it.
You can only get the fans of pages that you are an administrator for. So you have to provide an access token with your request associated with an admin account of the page you are trying to get the fans.
Facebook's FQL documentation here: https://developers.facebook.com/docs/reference/fql/page/ tells you how to do it. Run the example SELECT name, fan_count FROM page WHERE page_id = 19292868552 and replace the page_id number with your page's id number and it will return the page name and the fan count.