2011-09-29 18 views
5

He leído un montón de tutoriales/artículos/preguntas aquí sobre esto, así como tratar de encontrar algo útil en la documentación de fb.Obtener fotos con el gráfico api

Hasta ahora no he progresado en absoluto, así que cualquier comentario sería muy apreciado, simplemente estoy tratando de acceder a una lista de mis fotos, pero todo lo que obtengo es una matriz vacía.

Sé que he agregado más req_perms de lo que necesito probablemente, acabo de copiar los de un "tutorial de trabajo" que no funcionó para mí, y después de leer un hilo aquí también agregué user_photo_video_tags porque eso había funcionado para el poster de rosca (otra vez, no yo).

He recibido el cuadro de diálogo para permitir el intercambio de fotos mis fotos con mi aplicación, el registro funciona sin problemas, el token de acceso consigo parece ser correcta, después de entrar en que he visitado:

https://graph.facebook.com/me/photos?access_token= y la token, y obtuve una matriz vacía, si no estaba conectado o el access_token no estaba vinculado a mi aplicación habría algún error, pero todo lo que obtengo es una matriz vacía.

Gracias de antemano por cualquier entrada.

Gracias a Chaney Blu yo era capaz de validar mis permisos:

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

Respuesta

3

No estoy seguro si este es el problema, pero trata de esto. Parece que estás usando el último PHP SDK. En su getLoginUrl(); llamadas, intente cambiar 'req_perms' por 'alcance'.

De esta manera:

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

Puede comprobar que ha autorizado los permisos correctos visitando https://graph.facebook.com/me/permissions/?access_token=XXXX

+0

Gracias, sigo teniendo una matriz vacía, pero al menos pude comprobar mis permisos { "datos":. [ { "instalado": 1, "status_update": 1, "photo_upload": 1, "video_upload": 1, "create_note": 1, "share_item": 1, "publish_stream": 1} ] } –

+0

Parece que se está perdiendo el permiso user_photos. Esa podría ser la razón por la que obtienes una matriz vacía. Intenta eliminar la aplicación y volver a autorizarla. –

2

Después de probar algunos otros permisos que me di cuenta de facebook no estaban actualizando los permisos a mi manera, incluso al cerrar la sesión de la aplicación, iniciar sesión de nuevo y aceptar nuevos permisos, nada cambió cuando miré el enlace de permisos de gráficos que obtuve de Chaney Blu.

Utilicé ese enlace para verificar el token de la página de la API de gráficos de facebook http://developers.facebook.com/docs/reference/api/ y noté que el token tenía acceso a las fotos de usuario pero no a mi token.

Al acceder a mi configuración de Facebook y eliminar la aplicación, Facebook actualizó mis permisos la próxima vez que inicie sesión en la aplicación.

Gracias a Chaney Blu por ponerme en el camino correcto. Te votaría si tuviera la reputación.

+1

Aquí hay un voto para un representante :) – CuddleBunny

+0

Para forzar una recarga de permisos (y autorizarlos) puede agregar '& auth_type = re-query' al final de la login_url. Para la producción, esto solo se permite una vez para una aplicación, pero en el desarrollo debe poder hacerlo tantas veces como lo necesite. –

Cuestiones relacionadas