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

0

Я не могу получить электронное письмо от объекта 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(); 
Теги:
facebook
facebook-graph-api
facebook-php-sdk
facebook-sdk-4.0

2 ответа

0

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

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
    Это не сработало. В моем графобъекте нет электронной почты.
  • 0
    Вы проверяли developers.facebook.com/tools/explorer ? Вся информация для пользователя будет храниться в объекте там.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню