如何在iPhone SDK中获取Facebook相册的照片?

我正在开发一个iPhone应用程序,该应用程序使用此URL获取Facebook相册https://graph.facebook.com/me/albums?access_token=2227470867|2.ZJr73vaEvFeN4fI_A70RFw__.3600.1297090800-100000566543036|WmgxdwULBgKXl8J7ksGIA1tyGik

现在我想从这张专辑中获得照片。

任何想法将不胜感激。

提前致谢。

所以/我/专辑返回一个相册对象的数组,每个对象都有一个id

如果一张专辑有一个99394368305的ID,你可以去

https://graph.facebook.com/99394368305/photos

获取一组照片对象 。

其中每个将有picturesource属性来从Facebook获取图像数据。

他们都将有一个imagesarrays,以及如果你想要预缩放的图像,而不是只有原件。


所有的Facebook的查询给JSON回来 – 我假设你知道如何parsing这个?

由于下面的步骤需要很多时间;

1)得到朋友的使用方法:

 NSString *urlString=[NSString stringWithFormat:@"https://graph.facebook.com/me/friends?access_token=%@&fields=id,picture,name,birthday",fbGraph.accessToken]; 

2)把朋友uid拿到相册ID:

 NSString *urlString1=[NSString stringWithFormat:@"https://graph.facebook.com/%@/albums?access_token=%@",obj.uid,fbGraph.accessToken]; NSString *album = [[[_response1 objectForKey:@"data"]objectAtIndex:j]objectForKey:@"name"]; if ([album isEqualToString:@"Profile Pictures"]) { albumid = [[[_response1 objectForKey:@"data"]objectAtIndex:j]objectForKey:@"id"]; } 

3)然后把相册ID从该相册中获取图片:

 NSString *albumUrl=[NSString stringWithFormat:@"https://graph.facebook.com/%@/photos?type=album&access_token=%@",albumid,fbGraph.accessToken]; NSString *picUrl=[[[[[_response2 objectForKey:@"data"]objectAtIndex:0]objectForKey:@"images"]objectAtIndex:0]objectForKey:@"source"]; 

请告诉我一些其他的方法来获得大尺寸的个人资料照片,以节省时间。

下面的代码应该为你做正确的工作。 它获取login用户的相册,然后请求这张相册的照片。 在评论的地方,你将有权访问所有的照片。 欲了解更多信息,你可以参考文档 :

 FBRequest *request = [FBRequest requestForGraphPath:@"me/albums"]; [request startWithCompletionHandler:^(FBRequestConnection *connection, NSDictionary <FBGraphUser> *my, NSError *error) { if ([my[@"data"]count]) { for (FBGraphObject *obj in my[@"data"]) { FBRequest *r = [FBRequest requestForGraphPath:[NSString stringWithFormat:@"/%@/photos", obj[@"id"]]]; [r startWithCompletionHandler:^(FBRequestConnection *c, NSDictionary <FBGraphUser> *m, NSError *err) { //here you will get pictures for each album }]; } } }]; 

Facebook开发者新代码:

 FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc] initWithGraphPath:@"/{user-id}" parameters:params HTTPMethod:@"GET"]; [request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) { // Handle the result }]; 

最新的Facebook Graph API文档