Получение электронной почты из Facebook GraphObject

Я не могу получить электронное письмо от объекта Graph. Я вижу в своем приложении, что у меня есть разрешение на это. Вот мой текущий код:

    FacebookSession::setDefaultApplication('xxx','xx');
$helper = new FacebookRedirectLoginHelper('xxx');
$session = null;
try {
$session = $helper->getSessionFromRedirect();
Core::session('FacebookAuthSession')->sessionObject = $session;
} catch(FacebookRequestException $ex) {

} catch(\Exception $ex) {

}
$request = new FacebookRequest($session, 'GET', '/me');
$response = $request->execute();
$graphObject = $response->getGraphObject();

0

Решение

Вы можете использовать следующий код для выполнения:

use Facebook\FacebookRequest;
use Facebook\GraphUser;
use Facebook\FacebookRequestException;

if($session) {

try {

$user_profile = (new FacebookRequest(
$session, 'GET', '/me'
))->execute()->getGraphObject(GraphUser::className());

echo "Email: " . $user_profile->getEmail();

} catch(FacebookRequestException $e) {

echo "Exception occured, code: " . $e->getCode();
echo " with message: " . $e->getMessage();

}

}

Для проверки результатов вы также можете использовать проводник: https://developers.facebook.com/tools/explorer

0

Другие решения

Разрешения просто указаны как «утвержденные без проверки» в настройках вашего приложения, но вам все равно нужно авторизовать пользователя с ними, используя параметр «scope» в процессе входа в систему: https://developers.facebook.com/docs/reference/php/facebook-getLoginUrl/

0

По вопросам рекламы [email protected]