Q:

Facebook Profile Pictures for non-Friends

I am creating an iPhone email client that displays sender's profile pictures in in the UITableViewCells in the inbox, much like Sparrow does.   I am using the following FQL query to grab these images:
SELECT 
    pic_big 
FROM 
    user 
WHERE 
    uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) 
        AND 
    strpos(lower(name),'INSERT_FIRST_THREE_LETTERS_OF_FIRST_NAME_HERE') >= 0 
        AND 
    strpos(lower(name),'INSERT_LAST_NAME_HERE') >= 0 
ORDER BY name

I get the names of the senders from the email headers, and then search the user's Facebook friends using the full last name and the first three letters of the first name to account for nicknames.   This works pretty well on the whole. 
Sparrow, however, is able to grab profile pictures from Facebook for users I am not even friends with.   How is this possible?   I though queries were limited to specific groups, like your friends.   And that searches for email addresses were not valid?   Is this correct?   How does Sparrow grab these profile pics? 

A:

Well as long as you know the users Facebook ID - it's a long number but treat it as a string.  You can use this url to get their profile picture: 
https://graph.facebook.com/[id]/picture

No need for anything more complex. 

A:

You can get the user_id of any known user from their email by making an API call to:
 /search?type=user&q=USER@EMAIL.NET

If their email is registered with Facebook and public, you'll get back a JSON object with their name and user id. You'll need to make a separate call (or use a batch request) to get their picture from their ID.