2012-07-27 18 views
5

Me gustaría permitir que los usuarios de mi aplicación de iPhone vean y seleccionen de sus fotos de perfil de Facebook, descarguen la foto para usarla como una foto de perfil. Actualmente estoy usando el SSO SDK de Facebook y estoy ingresando con éxito y accediendo a la información de Graph. Han intentado acceder a la información de la fotografía (después de éxito de inicio de sesión SSO) usandoiOS facebook sdk cómo descargar el álbum, datos de fotos de perfil

[facebook requestWithGraphPath:@"me/albums"]; 

pero acabo de obtener un objeto de datos vacío a cambio. Intenté usar el Facebook API explorer, que es muy útil, y me proporciona datos para/picture y/photos y/albums. Por alguna razón, no obtengo los mismos datos usando requestWithGraphPath con me/albums, me/picture o me/photos. Simplemente "yo" funciona bien, pero no me da ninguna información de imagen. ¿Alguien puede decirme qué estoy haciendo mal?

Nota: esta es la referencia de la API: Facebook Graph API

Me hizo llegar perfil de imagen para trabajar de esta manera:

[facebook requestWithGraphPath:@"me?fields=picture"]; 

Actualización: realmente quiero que todas las Fotos del perfil, que es un álbum de fotos para Necesito saber cómo acceder a los álbumes a través de iOS. La foto de perfil que obtuve con éxito ahora.

He añadido permisos "user_photos" y "friends_photos" para álbumes de fotos de acuerdo a API:

NSArray *permissions = [[NSArray alloc] initWithObjects: 
          @"user_likes", 
          @"user_birthday", 
          @"email", 
          @"publish_stream", 
          @"publish_actions", 
          @"user_photos", 
          @"friends_photos", 
          nil]; 
    [facebook authorize:permissions]; 

Cuando digo que estoy recibiendo datos vacías, esto es el resultado JSON (de modo buscado: didLoad:) que es retornada:

{ 
    data =  (
    ); 
} 

Desde mi salida de archivo de registro:

- (void) request:(FBRequest *)request didLoad:(id)result{ 
    NSLog(@"%@",result); 

} 

final Nota: ¿Qué finalmente funcionó utilizar otro dispositivo, que actualizó mis permisos y luego todo comenzó a funcionar! Mi mejor opción es que el emulador y mi iPhone no actualizaban mis permisos de Facebook, por lo que me negaban el acceso a las fotos y obtenían una matriz de datos vacía.

Este SO pregunta fue una gran ayuda también: How to get photos of a facebook album in iPhone SDK?

Respuesta

8

Por el bien de los futuros televidentes, estoy respondiendo mi propia pregunta ya que no he recibido una respuesta completa de nadie más.

Primero, debe tener los permisos correctos, ya sea "user_photos" o "friends_photos". Luego debe asegurarse de que su dispositivo de prueba actualice sus permisos. Creo que reiniciar el dispositivo es lo que finalmente hizo por mí.

Una vez que hayas hecho esto, se puede obtener la lista de álbumes JSON, después de iniciar sesión a través de SSO, el uso de esta llamada:

[facebook requestWithGraphPath:@"me/albums" andDelegate:self]; 

Esto dará matriz JSON (bajo llave data) con todo tipo de información sobre cada álbum, incluida la identificación. Para obtener una lista de fotos para una identificación álbum en particular (digamos su '123456789') haga lo siguiente:

NSString * albumId = @"123456789"; 
NSString * path = [NSString stringWithFormat:@"%@/photos", albumId]; 
[facebook requestWithGraphPath:path andDelegate:self]; 

Su respuesta, por supuesto, vienen a través del método de FBRequestDelegaterequest:didLoad donde se pueden procesar los datos JSON.

+0

¿Podría obtener una copia de su trabajo sobre esto? Quiero permitir que el usuario obtenga fotos de su FB también, pero no sé por dónde empezar. – Shinigamae

+0

obtengo el resultado === { data = ( ); } en mi solicitud/álbumes. ¿Puedes sugerir cuál es el error? – Imran

+0

@Imran ¿verificó sus permisos y se aseguró de haber iniciado sesión correctamente? Más allá de eso, te sugiero que publiques una nueva pregunta, ¡buena suerte! –

1

Descargar la carpeta de documentos Api FBGraph después añadirlo al de la carpeta. y lea las instrucciones en el sitio web para desarrolladores de Facebook http://developers.facebook.com/docs/reference/api/.

Este es el código de ejemplo - sample code

En este obtendrá una foto de perfil de usuario en UIAlertView. Puedes mostrarlo donde quieras.

+0

Gracias, echaré un vistazo al código de muestra, aunque veo una nota que dice que ya no se mantiene, ¿está actualizado? –

+0

Hola, estoy seguro de que lo encontrarás genial. Lo he usado en una de mis aplicaciones. Hay un método: (IBAction) getAuthorPictureButtonPressed: (id) emisor. Solo compruébalo – TheTiger

+0

Lo intentaré, definitivamente útil. –

Cuestiones relacionadas