Bonjour,

j'utilise facebook login avec php graph v5 et j'obtient l'erreur suivante:

Fatal error: Uncaught exception 'Facebook\Exceptions\FacebookSDKException' with message 'Cross-site request forgery validation failed. The "state" param from the URL and session do not match.' in C:\wamp64\www\soshomepc\vendor\facebook\graph-sdk\src\Facebook\Helpers\FacebookRedirectLoginHelper.php on line 251

voici mon code:

<?php
require 'vendor/autoload.php';

use \Facebook\Facebook;

$fb = new Facebook([
   'app_id' => 'xxx', // Ici votre appId
   'app_secret' => 'xxx', // Ici votre appSecret
   'default_graph_version' => 'v2.2',
]);

$helper = $fb->getRedirectLoginHelper();

// On sélectionne les autorisations (la on demande juste l'email et la ville actuelle)
$permissions = ['email', 'user_location'];

// Ici on choisi l'url de redirection
$loginUrl = $helper->getLoginUrl('http://sos-home-pc.loc/index.php', $permissions);

// On affiche le lien de connection
echo '<a href="'. htmlspecialchars($loginUrl) .'">Connection avec Facebook</a>';

$accessToken = $helper->getAccessToken();
?>

4 réponses


Bonjour, as-tu renseigné les paramètres d'identification comme indiqué sur les commentaires?

c'est bon ça fonctionne j'avais oublié de rajouter un session_statrt() au début du script

par contre impossible de récupérer la ville de l'user

$response = $fb->get('/me?fields=name,first_name,last_name,email,gender,picture,city', $accessToken);

$user = $response->getGraphNode();

echo '<br>Votre adresse e-mail: ' . $user['email'];
echo '<br>Votre nom: ' . $user['last_name'];
echo '<br>Votre prénom: ' . $user['first_name'];
echo '<br>Votre adresse: ' . $user['city'];

Vérifies le contenu de $user['city'] , en faisant var_dump( $user );

j'ai ce message d'erreur en fait:

Fatal error: Uncaught exception 'Facebook\Exceptions\FacebookAuthenticationException' with message '(#100) Tried accessing nonexisting field (city) on node type (User)' in C:\wamp64\www\soshomepc\vendor\facebook\graph-sdk\src\Facebook\Exceptions\FacebookResponseException.php on line 106