2011-09-29 22 views
5

Przeczytałem wiele tutoriali/artykułów/pytań tutaj na ten temat, a także próbuję znaleźć coś przydatnego w dokumentacji fb.Pobierz zdjęcia z api interfejsu graficznego

Do tej pory nie robiłem żadnych postępów w ogóle, więc wszelkie dane wejściowe byłyby bardzo doceniane, po prostu próbuję uzyskać dostęp do listy moich zdjęć, ale dostaję tylko pustą tablicę.

Wiem, że dodałem więcej req_perms niż potrzebuję, po prostu skopiowałem te z "roboczego samouczka", który nie działał dla mnie, a po przeczytaniu wątku tutaj dodałem również user_photo_video_tags, ponieważ to działało dla wątku (ponownie, nie ja).

stałam się okno dialogowe, aby umożliwić udostępnianie zdjęć moich zdjęć z mojej aplikacji, logowanie działa bez problemu token dostępu otrzymuję wydają się być poprawne, po zalogowaniu się Odwiedziłem:

https://graph.facebook.com/me/photos?access_token= i token, i uzyskałem pustą tablicę, jeśli nie byłbym zalogowany, lub access_token nie był połączony z moją aplikacją, wystąpiłby błąd, ale dostaję tylko pustą tablicę.

Z góry dziękuję za wszelkie dane wejściowe.

Dzięki Chaney Blu byłem w stanie zweryfikować uprawnienia:

{ 
    "data": [ 
     { 
     "installed": 1, 
     "status_update": 1, 
     "photo_upload": 1, 
     "video_upload": 1, 
     "create_note": 1, 
     "share_item": 1, 
     "publish_stream": 1 
     } 
    ] 
} 

<?php 
error_reporting(E_ALL); 
ini_set("display_errors", 1); 
require_once 'library/facebook.php'; 

$app_id = "xxxxxxxxxxxxxxxx"; 
$app_secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxx"; 

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

$loginLink = $facebook->getLoginUrl(array(
    'scope' => 'user_status,publish_stream,user_photos,user_photo_video_tags' 
)); 
$logOutLink = $facebook->getLogoutUrl(); 

$user = $facebook->getUser(); 

if ($user) { 
    try { 
     // User logged in, get token 
     $token = $facebook->getAccessToken(); 
     //var_dump($token); dumped successfully 
     // Get public profile info 
     $user_profile = $facebook->api('/me'); 
     //var_dump($user_profile); dumped successfully 
     $photos = $facebook->api('/me/photos?access_token=' . $token); 
     var_dump($photos); // Empty array, BAH! 
    } catch (FacebookApiException $e) { 
     $user = null; 
    } 
} 

?> 
<a href="<?php echo $loginLink; ?>">Click here to login if you aren't autoredirected</a><br /><br /><br /> 
<a href="<?php echo $loginLink; ?>">Click here to logout</a> 

Odpowiedz

3

Nie jestem pewien, czy jest to problem, ale spróbuj tego. Wygląda na to, że używasz najnowszego pakietu SDK PHP. W swoim getLoginUrl(); połączeń, spróbuj zmienić "req_perms" na "zasięg".

Jak to:

$loginLink = $facebook->getLoginUrl(array(
    'scope' => 'user_status,publish_stream,user_photos,user_photo_video_tags' 
)); 

Można sprawdzić, które zostały upoważnione odpowiednie uprawnienia odwiedzając https://graph.facebook.com/me/permissions/?access_token=XXXX

+0

Dzięki, wciąż otrzymuję pustą tablicę, ale przynajmniej mogę zweryfikować swoje uprawnienia { "dane". [ { "zainstalowany": 1, "status_update": 1, "photo_upload": 1, "video_upload": 1, "create_note": 1, "share_item": 1, "publish_stream": 1 } ] } –

+0

Wygląda tracisz uprawnienia user_photos. Może dlatego dostajesz pustą tablicę. Spróbuj usunąć aplikację i ponownie autoryzować. –

2

Po przetestowaniu kilku innych uprawnień zauważyłem facebook nie aktualizowanie uprawnień do mojego powodu, nawet po wylogowaniu się z aplikacji, ponownym logowaniu się i akceptowaniu nowych uprawnień nic się nie zmieniło, gdy spojrzałem na link Uprawnienia do wykresu, który dostałem od Chaney Blu.

Użyłem tego linku do zweryfikowania tokena z facebookowego wykresu api strony http://developers.facebook.com/docs/reference/api/ i zauważyłem, że token miał dostęp do user_photos, ale nie mój token.

Przechodzenie do ustawień mojego facebooka i usuwanie aplikacji, dzięki której Facebook zaktualizował moje uprawnienia następnym razem, gdy zalogowałem się do aplikacji.

Dzięki Chaney Blu za postawienie mnie na dobrej drodze. Głosowałbym na ciebie, gdybym miał reputację.

+1

Oto głos na niektóre powtórzenia :) – CuddleBunny

+0

Aby wymusić ponowne załadowanie uprawnień (i autoryzować je), możesz dodać "& auth_type = rerequest" na końcu parametru login_url. W przypadku produkcji jest to dozwolone tylko raz dla aplikacji, ale w fazie rozwoju powinno to być możliwe tak często, jak potrzeba. –

Powiązane problemy