Facebook Graph API, how to get users email?
The only way to get the users e-mail address is to request extended permissions on the email field. The user must allow you to see this and you cannot get the e-mail addresses of the user's friends.
http://developers.facebook.com/docs/authentication/permissions
You can do this if you are using Facebook connect by passing scope=email in the get string of your call to the Auth Dialog.
I'd recommend using an SDK instead of file_get_contents as it makes it far easier to perform the Oauth authentication.
// Facebook SDK v5 for PHP// https://developers.facebook.com/docs/php/gettingstarted/5.0.0$fb = new Facebook\Facebook([ 'app_id' => '{app-id}', 'app_secret' => '{app-secret}', 'default_graph_version' => 'v2.4',]);$fb->setDefaultAccessToken($_SESSION['facebook_access_token']);$response = $fb->get('/me?locale=en_US&fields=name,email');$userNode = $response->getGraphUser();var_dump( $userNode->getField('email'), $userNode['email']);
Open base_facebook.php Add Access_token at function getLoginUrl()
array_merge(array( 'access_token' => $this->getAccessToken(), 'client_id' => $this->getAppId(), 'redirect_uri' => $currentUrl, // possibly overwritten 'state' => $this->state), $params);
and Use scope for Email Permission
if ($user) { echo $logoutUrl = $facebook->getLogoutUrl();} else { echo $loginUrl = $facebook->getLoginUrl(array('scope' => 'email,read_stream'));}