guzzlephp guzzlehttp example docs facebook laravel guzzle

facebook - example - laravel 5.6 guzzlehttp



¿Cómo recibir correos electrónicos de Facebook a través de Guzzle en laravel? (2)

Estoy usando el código a continuación para iniciar sesión a través de Facebook en laravel.

Refiriéndose a https://scotch.io/tutorials/token-based-authentication-for-angularjs-and-laravel-apps para la autenticación basada en token y utilizando https://github.com/sahat/satellizer para la integración de redes sociales.

$params = [ ''code'' => $request->input(''code''), ''client_id'' => $request->input(''clientId''), ''redirect_uri'' => $request->input(''redirectUri''), ''client_secret'' => ''XXXXXXXXXXXXXXXXXXX'' /*''client_secret'' => Config::get(''app.facebook_secret'')*/ ]; // Step 1. Exchange authorization code for access token. $accessTokenResponse = $client->request(''GET'', ''https://graph.facebook.com/v2.5/oauth/access_token'', [ ''query'' => $params ]); $accessToken = json_decode($accessTokenResponse->getBody(), true); // Step 2. Retrieve profile information about the current user. $profileResponse = $client->request(''GET'', ''https://graph.facebook.com/v2.5/me'', [ ''query'' => $accessToken ]); $profile = json_decode($profileResponse->getBody(), true);

$ perfil que solo devuelve fb id y nombre de usuario. ¿Qué cambios debo hacer para recibir correos electrónicos de Facebook?


Reemplace esto:

''https://graph.facebook.com/v2.5/me''

con este:

''https://graph.facebook.com/v2.5/me?fields=name,email''

Se llama "Campos declarativos", ver changelog.

Además, debe autorizar con el permiso de email , por supuesto. Y el correo electrónico debe ser confirmado. No puede estar 100% seguro de recibir un correo electrónico, algunos usuarios usan su número de teléfono para iniciar sesión.

También debería verificar esto: https://github.com/sahat/satellizer/issues/615


Use el código a continuación en su paso 2.

$fields = ''id,email,first_name,last_name,link,name''; $profileResponse = $client->request(''GET'', ''https://graph.facebook.com/v2.5/me'', [ ''query'' => [ ''access_token'' => $accessToken[''access_token''], ''fields'' => $fields ] ]);