2011-02-07 146 views
8

我正在開發一個iPhone應用程序,該應用程序使用此URL獲取Facebook專輯https://graph.facebook.com/me/albums?access_token=2227470867|2.ZJr73vaEvFeN4fI_A70RFw__.3600.1297090800-100000566543036|WmgxdwULBgKXl8J7ksGIA1tyGik如何在iPhone SDK中獲取Facebook相冊的照片?

現在我想從此相冊中獲取照片。

任何想法將不勝感激。

在此先感謝。

+0

http://stackoverflow.com/questions/30207465/ios-facebook-album- photos-picker/31789234#31789234 – 2015-08-07 01:03:02

回答

13

這樣/我/專輯返回一個Album objects的數組,其中每個都有一個id

如果專輯具有99394368305一個id,你可以去

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

獲得的photo objects陣列。

其中每一個將具有picturesource屬性以從Facebook獲取圖像數據。

如果您想要預先縮放的圖像而不是原件,它們全都會有一個images陣列。


所有的facebook查詢都給JSON回來 - 我假設你知道如何解析這個?

+0

謝謝,它幫助我。 – Apekshit 2011-02-10 05:20:11

+0

你可以給這個問題的答案嗎? http://stackoverflow.com/questions/4957260/how-to-comment-or-like-a-photo-in-facebook-through-fbconnect-or-graph-api-in-ipho – Apekshit 2011-02-10 12:56:14

+1

@聽衆的答案似乎是現貨已經:) – deanWombourne 2011-02-10 15:20:41

3

由於以下步驟需要很長時間;

1)使用得到朋友的UID:

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"]; 

請告訴我一些其他的方法來獲得大尺寸的個人資料照片,以節省時間。

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 
      }]; 
     } 
    } 

}]; 
0

Facebook開發新的代碼:

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

Latest Facebook Graph API docs

相關問題