我正在开发一款iPhone应用程序,它可以通过这个URL获取Facebook相册:https://graph.facebook.com/me/albums?access_token=2227470867|2.ZJr73vaEvFeN4fI_A70RFw__.3600.1297090800-100000566543036|WmgxdwULBgKXl8J7ksGIA1tyGik。现在我想要从这个相册中获取照片。如果您有任何想法,将不胜感激。谢谢您的帮助。
/me/albums会返回一个相册对象数组,每个对象都有一个id
属性。
如果一个相册的id是99394368305,你可以去
https://graph.facebook.com/99394368305/photos
获取一个包含照片对象的数组。
每个照片对象都有picture
和source
属性来获取Facebook上的图像数据。
它们还都有一个images
数组,如果您想要预缩放的图像而不仅仅是原始图像,也可以使用该数组。
所有 Facebook 查询都会返回 JSON - 我假设您知道如何解析它吗?
由于以下步骤,这需要花费很多时间:
1)使用以下方法获取朋友的uid:
NSString *urlString=[NSString stringWithFormat:@"https://graph.facebook.com/me/friends?access_token=%@&fields=id,picture,name,birthday",fbGraph.accessToken];
2) 将朋友的用户id放入获取相册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"];
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
}];