2010-12-23 8 views
3

ich dies mit User Fotos abzurufen aber es ist immer print_r 'leere Array sa:Facebook SDK Fotos gibt leere Array

$facebook = new Facebook(array(
    'appId' => 'XXX', 
    'secret' => 'XXX', 
    'cookie' => true, 
)); 

if ($facebook->getSession()) { 
    try {   
     $profile = $facebook->api('/me/photos'); 
     echo "<pre>"; 
     print_r($profile); 

    } catch (FacebookApiException $e) { 
     echo $e->getMessage(); 
     exit(); 
    } 
} 
else { 
    $login_url = $facebook->getLoginUrl(array(
     'next' => 'XXX', 
     'cancel_url' => 'XXX', 
     'req_perms' => 'user_about_me,user_location,user_hometown,user_birthday,user_interests,user_likes,user_photos' 
    )); 

    echo '<a href="'.$login_url.'">Click here to login</a>'; 
} 

Wenn ich benutze:

$profile = $facebook->api('/me');

Es print_r' s ein Array voller Daten, aber nicht die Fotoinformationen, nach denen ich suche.

Irgendwelche Ideen?

Antwort

1

Wenn Sie die Facebook-Sitzung erhalten, erhalten Sie auch ein Zugriffs-Token. Sie müssen es verwenden, um gültige API-Anfragen zu erstellen. Alles, was keine öffentlichen Informationen sind, benötigt dieses Token. Anwendungsbeispiel:

$session = $facebook->getSession(); 
// var_dump($session) to see it's content 
$facebook->api('/me/photos?access_token=' . $session['access_token']); 

Wenn Sie dies tun, erhalten Sie immer noch leere Daten, vielleicht hat dieser Benutzer keine Fotos.

Viel Glück!

+0

Das SDK sollte automatisch das Zugriffstoken anhängen, damit Sie sich keine Gedanken darüber machen müssen, aber ich bekomme das gleiche leere Array, wenn ich diese Methode verwende. Auf der API-Seite http://developers.facebook.com/docs/reference/api/user/ Wenn ich auf "Fotos" in der Tabelle klicke, kann ich die JSON-Daten von Fotos sehen, so dass meine App nicht zu sehen ist dies obwohl "user_photos" in meinem "req_perms" gesetzt ist, wenn ich mich anmelde ?! – fire

+0

Nein, der sdk fügt dieses Token nicht automatisch an, das ist Ihre Aufgabe. Zweitens, wenn Sie auf diesen Link geklickt haben, bemerken Sie, dass facebook Ihnen ein Zugriffs-Token gab und es Ihrer Anfrage hinzufügte;) – misterjinx

+0

Ja, ich habe festgestellt, wenn ich den Zugriff Token Param auf der fb Website durch den aus meiner App erhalte es auch ausgibt eine leere JSON-Struktur, daher denke ich, dass meine App nicht autorisiert ist, aber ich weiß nicht, warum "user_photos" in "req_perms" eingestellt ist – fire

0

Versuchen https://graph.facebook.com/ $ album_id/Fotos

Ich bin nicht sicher, warum mich/Fotos leeres Array zurückgibt. Wahrscheinlich bedeutet es etwas anderes, vielleicht die Fotos, auf denen ich getaggt bin oder etwas anderes. Auch für mich gibt es leere Array konsequent zurück. aber wenn ich versuche, auf graph.facebook.com/$album_id/photos zuzugreifen, dann bekomme ich das Array aller Fotos in diesem Album.

2

Ich hatte das gleiche Problem. Meine Lösung:

$facebook->api('/me/albums?access_token=' . $session['access_token']);

hoffe, es ist nicht zu spät!