我正在开发一个iPhone应用程序,用这个URL https://graph.facebook.com/me/albums?access_token=2227470867|2.ZJr73vaEvFeN4fI_A70RFw__.3600.1297090800-100000566543036|WmgxdwULBgKXl8J7ksGIA1tyGik
获取facebook相册现在我想从这张专辑中获取照片。
任何想法都将受到赞赏。
先谢谢。
答案 0 :(得分:13)
所以/ me / albums返回一个Album objects数组,每个数组都有一个id
。
如果相册的ID为99394368305,您可以转到
https://graph.facebook.com/99394368305/photos
获取photo objects数组。
其中每个都有picture
和source
属性,可以从Facebook获取图像数据。
如果你想要预缩放图像而不仅仅是原件,它们都会有一个images
数组。
所有的facebook查询都给了JSON - 我假设你知道如何解析它?
答案 1 :(得分:3)
由于以下步骤,需要花费大量时间;
1)使用以下方式获取朋友的信息:
NSString *urlString=[NSString stringWithFormat:@"https://graph.facebook.com/me/friends?access_token=%@&fields=id,picture,name,birthday",fbGraph.accessToken];
2)把朋友们用来获取专辑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"];
请告诉我一些其他方法,只需一步即可获得大尺寸的个人资料照片以节省时间。
答案 2 :(得分:3)
以下代码应该为您做正确的工作。它获取已登录用户的相册,然后请求此相册的照片。在评论的地方,您可以访问所有照片。有关详细信息,请参阅docs:
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
}];
}
}
}];
答案 3 :(得分:0)
Facebook开发者新代码:
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
initWithGraphPath:@"/{user-id}"
parameters:params
HTTPMethod:@"GET"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
id result,
NSError *error) {
// Handle the result
}];