Finding friends with specific job title - facebook

I'm trying to find all my friends with a specific job title, and no matter what I put in filter, it always return nothing
FQL query:
select name, work.position from user where work and uid in (select uid1 from friend where uid2 = me())
and work.position.id= 103141116410872

Related

Facebook FQL getting all my friends last position update

I'm trying to get all my friend's last position update with this fql query:
SELECT author_uid, message, latitude, longitude, timestamp FROM location_post WHERE author_uid IN (SELECT uid2 FROM friend WHERE uid1 = me())
I would like to take just the latest update for every friend but this query returns me more than one update for a single friend.
I tried to set a limit at the end of the query (equal to the number of my friends) but it does not work.
How I should change it?
If it was a normal database, not a facebook FQL, you could use join and get your results in single query. Unfortunately Facebook FQL does not allow joins or even max function.
But you can:
Receive all the friend ids like in your query
SELECT uid2 FROM friend WHERE uid1 = me()
Then for each friend uid run the query
SELECT author_uid, message, latitude, longitude, timestamp FROM location_post
WHERE author_uid = FRIEND_ID order by timestamp desc limit 1

Get places count of my friends

I want likes count, wall post count and places count of all my friends.
SELECT name ,likes_count, wall_count FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me())
This returning me list of all of my friends names with their total page likes count and wall post count
but i also need places count of all friends. I think facebook provide it directly like likes and wall post. As in profile we can see total places count just like likes count and friend count and mutual friends count. I have also tried this.
SELECT author_uid, checkin_id FROM checkin WHERE author_uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) OR tagged_uids IN (SELECT uid2 FROM friend WHERE uid1 = me()) LIMIT 5000
My idea was that i will get it and process it on my application end but it is not returning full list of checkins. How can i get all checkins of my friends with their ids so than i can calculate their total checkins ???
OR if there is a direct way of getting places count then it will be much efficient for my code ...
Don't use any LIMIT.
SELECT author_uid, checkin_id
FROM checkin
WHERE author_uid IN (
SELECT uid2 FROM friend WHERE uid1 = me())
OR tagged_uids IN (
SELECT uid2 FROM friend WHERE uid1 = me())
This works and gives me 737 checkins for all my friends. FQL doesn't have a COUNT function like in SQL, so you will have to enumerate checkins in the language of your choice.

Getting friends status updates and comments using facebook api

Hi i am new in using facebook api
i want to get the friends status based on following criteria
Get all the friends details (name, uid, status_message, posted_date) whose status update has more than 15 comments/likes
following query is giving all friends status updates
SELECT status_id, uid , message FROM status WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me())
Above query returns all my friends updates but i want to include the comments and likes on those updates in the response so that i can check the count on my side
there are comments table and likes table also in the api both might have foreign key relationship with the status_id column
Can we write a full query with joins like SQL
You can't do JOINs in FQL, but you can approximate them with a multiquery:
{
'status': 'SELECT status_id, uid , message FROM status
WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me())',
'comments': 'SELECT post_id, fromid, time, text FROM comment
WHERE post_id IN (SELECT status_id from #status)'
}

Facebook FQL get list of users and include installed parameter

I would like to get a list of friends of a user. In this list I would like to know which users also have the app installed.
According to https://developers.facebook.com/docs/reference/api/user/ there is an installed parameter that can be accessed through the graph api.
I am trying to do so with the following query but I am having trouble getting the result. (I split the query on multiple lines for readabilty)
var query = "SELECT uid, name, first_name, last_name, pic_square, status, installed FROM user ";
query += "where uid IN (SELECT uid2 FROM friend WHERE uid1 = " + Titanium.Facebook.uid + ")";
query += "order by first_name";
Just had a look at this using the api explorer. You want "is_app_user" as the field for an FQL query and not installed as that doesn't exist in fql but is an api endpoint
fql?q=SELECT uid, name, first_name, last_name, pic_square, status, is_app_user FROM user where uid IN (SELECT uid2 FROM friend WHERE uid1 = me()
or try
https://developers.facebook.com/tools/explorer/433871385166/?method=GET&path=fql%3Fq%3DSELECT%20uid%2C%20name%2C%20first_name%2C%20last_name%2C%20pic_square%2C%20status%2C%20is_app_user%20FROM%20user%20where%20uid%20IN%20(SELECT%20uid2%20FROM%20friend%20WHERE%20uid1%20%3D%20me())

Best way to get common "likes" from public info page out of your friends list

I'm trying to get a list of common likes (public) between a user and his friends. I thought this FQL query would work but I'm getting an unknown user error:
--get page_id that you have and any of your friends have
https://api.facebook.com/method/fql.query?query=
select uid, page_id from page_fan where uid in (SELECT uid2 FROM friend WHERE uid1 = me()) and page_id in (select page_id from page_fan where uid= me())
&access_token=ABC
I'm getting this error:
<error_response><error_code>1</error_code><error_msg>An unknown error occurred</error_msg></error_response>
Any suggestions?
It seems that the result set is way to big for the API to handle. Your best bet is to try to limit the result set by either query a set of friends against the user's like or query one, two ...etc pages at a time (if that also didn't work try to LIMIT your friends to say 100 to make sure you are actually getting something). Example of a query:
select uid, page_id
from page_fan
where uid in (
SELECT uid2
FROM friend
WHERE uid1 = me()
) and page_id in (
select page_id
from page_fan
where uid= me()
LIMIT 1
)
Obviously there is no offset in FQL. So first, you need to retrieve the user's likes and then query against them. You can always use the batch api to make multiple calls in a single batch call.
SELECT page_id from page_fan WHERE uid = me() and page_id IN ( SELECT page_id from page_fan WHERE uid = give one hid here )