Facebook Graph API, how to get users email? Facebook Graph API, how to get users email? php php

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'));}