2010-11-19 10 views
0

Zusammenfassung anfordern:PHP-Anwendung Facebook - konfigurieren Sie zusätzliche Informationen

Wie kann ich eine Facebook-Anwendung konfigurieren Sie zusätzliche Informationen vom Benutzer anzufordern.

Das Detail:

entschied ich mich vor kurzem zu versuchen, eine Facebook-Anwendung zu schreiben. Die Idee hinter der Graphik-API schien mir gut zu sein und ich hoffte, dass es einfach wäre. Großer Fehler!

Ich habe es geschafft, die folgenden zusammenschustern, die erfolgreich ruft die öffentlich zugänglichen Informationen über mich:

// 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); 
    } 
} 

Es kann aber nicht habhaft meine Alben und Fotos, weil sie spezielle Berechtigungen erforderlich sein vom Benutzer gewährt. Mein Problem ist, dass ich keine Einstellungen in der Facebook basierten Anwendung sehen kann, die dies tun würden.

Können Sie helfen ??

Antwort

1

Fügen Sie den folgenden Code an Ihren an. Sie müssen $ url als URL Ihrer Facebook-Anwendung festlegen und "req_perms" entsprechend Ihren Anforderungen anpassen.

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

Fantastisch. Vielen Dank! – Derek

1

Nun, die obige Antwort ist fast richtig. Wenn Sie jedoch andere Graph-API-Berechtigungen benötigen, können Sie den folgenden Link verwenden: Facebook_Permissions. Und die Art, den obigen Code zu optimieren, ist: array ('req_perms' => 'HINZUFÜGEN DER ERFORDERLICHEN BERECHTIGUNGEN', 'next' => $ returnUrl). Wenn mehrere Berechtigungen vorhanden sind, trennen Sie sie außerdem durch ein Komma.

+0

Danke für die zusätzlichen Informationen. – Derek

Verwandte Themen