2010-11-19 3 views
0

Résumé:application Facebook php - configurer pour demander des informations supplémentaires

Comment puis-je configurer mon application facebook pour demander des informations supplémentaires de l'utilisateur.

Le détail:

j'ai décidé récemment d'essayer d'écrire une application facebook. L'idée derrière le graphique api semblait bonne et j'espérais que ce serait simple. Grosse erreur!

J'ai réussi à bricoler les éléments suivants ensemble qui récupère avec succès les informations disponibles publiquement sur moi:

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

// Read session info from Facebook object above 
$session = $facebook->getSession(); 

$me = null; 
$myfriends = null; 
$myalbums = null; 
$myphotos = null; 

// If logged in ok, load data into php objects for use in page 
if ($session) { 
    try { 
    $uid = $facebook->getUser(); 
    $me = $facebook->api('/me'); // infor about logged in person 
    $myfriends = $facebook->api('/me/friends'); // list of their friends and associated ids 
    $myphotos = $facebook->api('/me/photos'); // photos I've loaded or am tagged in -  requires permissions! 
    $myalbums = $facebook->api('/me/albums');// Albums I've created - requires permissions! 
} catch (FacebookApiException $e) { 
    error_log($e); 
    } 
} 

Cependant, il ne peut pas mettre la main sur mes albums et des photos, car ils nécessitent des autorisations spéciales pour être accordé par l'utilisateur. Mon problème est que je ne peux pas voir les paramètres dans la configuration de l'application basée sur Facebook qui ferait cela.

Pouvez-vous aider?

Répondre

1

Ajoutez le code suivant au vôtre. Vous devez définir $ url comme l'URL de votre application facebook et ajuster 'req_perms' en fonction de vos besoins.

if(!$session) { 
    $url = $facebook->getLoginUrl(array('req_perms'=>'email,publish_stream', 'next'=>$returnUrl)); 
    echo <<<EOD 
<html> 
<head> 
<script type="text/javascript">function redirect(){ top.location.href = "$url"; }</script> 
</head> 
<body onload="redirect();">Please wait...</body> 
</html> 
EOD; 
} 
+0

Fantastique. Merci! – Derek

1

Eh bien, la réponse ci-dessus est presque juste. Mais si vous avez besoin d'autres permissions de l'API graphique, vous pouvez vous référer au lien suivant: Facebook_Permissions. Et, le moyen de modifier le code ci-dessus est: array ('req_perms' => 'AJOUTER LES PERMISSIONS REQUISES', 'next' => $ returnUrl). En outre, s'il existe plusieurs autorisations, séparez-les par une virgule.

+0

Merci pour l'info supplémentaire. – Derek

Questions connexes