Get information from these links:
Procedure
Statckoverflow Discussion
If the user / friend has not granted you permission to access the email, most likely you will not be able to get the email address. For such cases, you can select the filter only for friends who have granted permissions for your application. This can be done using the is_app_user field:
SELECT uid, first_name, last_name FROM user WHERE is_app_user = 1 AND uid IN (SELECT uid2 FROM friend WHERE uid1 = $userId)
Get an updated response:
$appId = 'YOUR_APP_ID'; $appSecret = 'YOUR_APP_SECRET'; $userId = 'A_FACEBOOK_USER_ID'; $userAccessToken = 'THE_FACEBOOK_USER_ACCESS_TOKEN'; $client = new Facebook(array('appId' => $appId, 'secret' => $appSecret)); // get all friends who has given our app permissions to access their data $fql = "SELECT uid, first_name, last_name, email FROM user " . "WHERE is_app_user = 1 AND uid IN (SELECT uid2 FROM friend WHERE uid1 = $userId)"; $friends = $client->api(array( 'method' => 'fql.query', 'access_token' => $userAccessToken, 'query' => $fql, )); // make an array of all friend ids $friendIds = array(); foreach ($friends as $friend) { $friendIds[] = $friend['uid']; } // get info of all the friends without using any access token $friendIds = implode(',', $friendIds); $fql = "SELECT uid, first_name, last_name, email FROM user WHERE uid IN ($friendIds)"; $friends = $client->api(array( 'method' => 'fql.query', 'query' => $fql, // don't use an access token )); // we should now have a list of friend infos with their email addresses print_r($friends);
Somnath muluk
source share