2011-09-29 22 views
5

Ho letto un sacco di tutorial/articoli/domande qui su questo, oltre a provare a trovare qualcosa di utile nella documentazione fb.Ottieni foto con grafico api

Finora ho fatto alcun progresso me così qualsiasi ingresso sarebbe molto apprezzato, sto semplicemente cercando di accedere a un elenco delle mie foto, ma tutto quello che ottiene è un array vuoto.

so che ho aggiunto più req_perms di quanto ho bisogno probabilmente, ho appena copiato quelli da un "tutorial di lavoro" che non ha funzionato per me, e dopo aver letto un thread qui ho anche aggiunto user_photo_video_tags perché aveva funzionato per il thread poster (di nuovo, non io).

ho ottenuto la finestra di dialogo per consentire la condivisione di foto mie foto con la mia app, login funziona senza problemi, il token di accesso ottengo sembrano essere corretti, dopo l'accesso ho visitato:

https://graph.facebook.com/me/photos?access_token= e la token, e ottenuto un array vuoto, se non fossi loggato o access_token non fosse collegato alla mia app ci sarebbe stato un errore, ma tutto ciò che ottengo è un array vuoto.

Grazie in anticipo per qualsiasi input.

Grazie a Chaney Blu sono stato in grado di convalidare il mio permesso:

{ 
    "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> 

risposta

3

Non sono sicuro se questo è il problema, ma provare questo. Sembra che tu stia usando l'ultimo SDK PHP. Nel tuo getLoginUrl(); chiama, prova a cambiare 'req_perms' in 'scope'.

Ti piace questa:

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

Si può verificare di aver autorizzato le autorizzazioni corrette visitando https://graph.facebook.com/me/permissions/?access_token=XXXX

+0

Grazie, ho ancora un array vuoto, ma almeno ho potuto verificare i miei permessi { "dati":. [ { "installato": 1, "status_update": 1, "photo_upload": 1, "video_upload": 1, "create_note": 1, "share_item": 1, "publish_stream": 1} ] } –

+0

Sembra che vi state perdendo il permesso user_photos. Questo potrebbe essere il motivo per cui stai ricevendo un array vuoto. Prova a rimuovere l'app e a effettuare nuovamente l'autorizzazione. –

2

Dopo aver testato alcuni altri permessi che ho notato facebook non sono state aggiornando i permessi al mio modo, anche quando si disconnetteva dall'app, l'accesso di nuovo e l'accettazione di nuove autorizzazioni non cambiava nulla quando guardavo il collegamento delle autorizzazioni Graph che ho ricevuto da Chaney Blu.

Ho usato quel collegamento per verificare il token da facebooks graph api page http://developers.facebook.com/docs/reference/api/ e ho notato che il token aveva accesso a user_photos ma non al mio token.

Entrando nelle mie impostazioni di Facebook e rimuovendo l'app fatta, Facebook aggiorna le mie autorizzazioni la prossima volta che ho effettuato l'accesso all'app.

Grazie a Chaney Blu per avermi messo sulla strada giusta. Ti voterei se avessi la reputazione.

+1

Ecco un voto per qualche rappresentante :) – CuddleBunny

+0

Per forzare un ricaricamento delle autorizzazioni (e autorizzarle) è possibile aggiungere "& auth_type = rerequest" alla fine di login_url. Per la produzione questo è consentito solo una volta per un'app, ma in fase di sviluppo dovresti essere in grado di farlo tutte le volte che ti servono. –

Problemi correlati