web-dev-qa-db-fra.com

Un jeton d'accès actif doit être utilisé pour interroger les informations sur l'utilisateur actuel

Je continue à obtenir l'erreur dans le titre, tout en utilisant un code simple:

require_once('sdk/src/facebook.php');
require_once("AppInfo.php");
function idx(array $array, $key, $default = null) {
  return array_key_exists($key, $array) ? $array[$key] : $default;
}
function he($str) {
  return htmlentities($str, ENT_QUOTES, "UTF-8");
}
$facebook = new Facebook(array(
  'appId'  => AppInfo::appID(),
  'secret' => AppInfo::appSecret(),
  'sharedSession' => true,
  'trustForwarded' => true,
));

$arrayForJSON=array();
$user = $facebook->getUser();
$friends = idx($facebook->api('/me/friends'), 'data', array());
if ($friends) {
  $arrayForJSON['friends']=$friends;
}
print_r($friends);

Je ne sais vraiment pas comment le résoudre, j'ai cherché et essayé de nombreuses réponses sur stackoverflow

14

Vous devez définir le jeton d'accès pour pouvoir obtenir des données ou agir au nom de l'utilisateur. Parcourez-vous un flux de connexion pour autoriser l'autorisation de votre application Facebook?

Essayez l'exemple sur https://developers.facebook.com/docs/reference/php/facebook-api/

Il fournit le flux de connexion très basique qui permettra d'accéder aux données que vous recherchez.

2
JayNCoke

vous devez vérifier si vous êtes déjà connecté sinon rediriger l'utilisateur vers le lien de connexion

require '../src/facebook.php';

// Create our Application instance (replace this with your appId and secret).
$facebook = new Facebook(array(
  'appId'  => '191149314281714',
  'secret' => '73b67bf1c825fa47efae70a46c18906b',
));

// Get User ID
$user = $facebook->getUser();

// We may or may not have this data based on whether the user is logged in.
//
// If we have a $user id here, it means we know the user is logged into
// Facebook, but we don't know if the access token is valid. An access
// token is invalid if the user logged out of Facebook.

if ($user) {
  try {
    // Proceed knowing you have a logged in user who's authenticated.
   // $user_profile = $facebook->api('/me');
   $friends = idx($facebook->api('/me/friends'), 'data', array());

  } catch (FacebookApiException $e) {
    error_log($e);
    $user = null;
  }
}

// Login or logout url will be needed depending on current user state.
if ($user) {
  $logoutUrl = $facebook->getLogoutUrl();
} else {
  $loginUrl = $facebook->getLoginUrl(array('scope'=>'offline_access'));
}
2
Baha'a Odeh