2010-10-29 5 views
0

Je sais que cette question aurait pu être posée un million de fois auparavant, mais malheureusement, je ne peux pas compiler toutes ces réponses pour que cela fonctionne. Je veux écrire un code PHP qui utilise facebook Graph API, pour rechercher un profil (par exemple par son nom), puis saisir cette information dans un magasin local. J'ai révisé l'API Facebook Graph mais elle utilise OAuth et beaucoup de tâches inutiles dont je n'ai pas besoin. Parce que simplement je ne veux pas utiliser l'API pour le compte d'un compte utilisateur spécifique. Je veux juste l'utiliser anonymement, ou même avec un exemple d'utilisateur qui ne devrait pas nécessairement être un ami avec ces utilisateurs que je recherche. Je serais reconnaissant si quelqu'un pourrait me dire si c'est faisable ou non, ou même me demander de clarifier ma question un peu plus :)Facebook Graph API, tirer des informations anonymement

Merci d'avance.

Répondre

1

Vous devez récupérer un jeton d'accès pour utiliser l'API Graph pour rechercher des utilisateurs. Je ne pense pas qu'il existe un moyen de contourner cela. Au moins pas avec l'API graphique.

Essayez here pour utiliser l'API Graph pour rechercher des utilisateurs. Vous verrez qu'ils utilisent un jeton d'accès. Essayer à search pour un utilisateur sans un jeton d'accès conduira au message d'erreur suivant.

{ 
    "error": { 
    "type": "OAuthException", 
    "message": "An access token is required to request this resource." 
    } 
} 

Mise à jour:

De la documentation développeurs Facebook:

« authentification Facebook permet à votre application d'interagir avec l'API Graph au nom des utilisateurs de Facebook, et il fournit un puissant mécanisme de connexion unique sur les applications Web, mobiles et de bureau. "

Le processus authentication n'est pas si compliqué.

+0

Merci pour votre commentaire :). puis-je comprendre qu'il devrait y avoir une session ouverte d'utilisateur connecté sur le navigateur? – rgeorgy

+0

Je suis sûr que vous devez être connecté à Facebook. Au moins, je ne connais pas d'autre moyen d'obtenir un jeton d'accès. –

1

Bien sûr, voici un moyen rapide de s'y prendre pour obtenir les informations que vous voulez:

<?PHP 

define('FACEBOOK_APP_ID', 'yourappIDhere'); 
define('FACEBOOK_SECRET', 'yourFBsecretkeyhere'); 

function get_facebook_cookie($app_id, $application_secret) { 
    $args = array(); 
    if(isset($_COOKIE['fbs_' . $app_id])){ 
     parse_str(trim($_COOKIE['fbs_' . $app_id], '\\"'), $args); 
    } 

    ksort($args); 
    $payload = ''; 
    foreach ($args as $key => $value) { 
     if ($key != 'sig') { 
      $payload .= $key . '=' . $value; 
     } 
    } 
    if(isset($args['sig'])){ 
     if (md5($payload . $application_secret) != $args['sig']) { 
      return null; 
     } 
     else 
      return $args; 
    } 
    else 
     return null; 
} 

$cookie = get_facebook_cookie(FACEBOOK_APP_ID, FACEBOOK_SECRET); 

?> 


<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:fb="http://www.facebook.com/2008/fbml"> 
<head> 
</head> 
<body> 
<?php if ($cookie) { ?> 
    Your user ID is <?PHP echo $cookie['uid']; ?> 
<?PHP 
    $user = json_decode(file_get_contents('https://graph.facebook.com/me/access_token=' . $cookie['access_token']))->data; 

} else { 
?> 
    <fb:login-button perms="email"></fb:login-button> 
<?php } ?> 

<div id="fb-root"></div> 
<script src="http://connect.facebook.net/en_US/all.js"></script> 
<script> 
    FB.init({appId: '<?= FACEBOOK_APP_ID ?>', status: true, 
      cookie: true, xfbml: true}); 
    FB.Event.subscribe('auth.login', function(response) { 
    window.location.reload(); 
    }); 
</script> 
</body> 
</html> 

Après ce juste mentionné ci-dessus, voici le code de base que vous devez obtenir la configuration d'authentification pour vous-même.

HTH :)

Vous pouvez modifier les paramètres pour le bouton de connexion il est donc pas seulement « email » et recherche par tout ce que vous pouvez désirer.

+0

En fait, l'accès à Facebook sera dans le back-end, je n'ai pas besoin de boutons de connexion pour les utilisateurs de se connecter à Facebook. Je veux juste récupérer des informations * publiques * sur le compte de l'utilisateur. Merci pour votre réponse si :) – rgeorgy

Questions connexes