2011-02-07 45 views
8

Tôi đang phát triển một ứng dụng iPhone có được album facebook với URL này https://graph.facebook.com/me/albums?access_token=2227470867|2.ZJr73vaEvFeN4fI_A70RFw__.3600.1297090800-100000566543036|WmgxdwULBgKXl8J7ksGIA1tyGikLàm thế nào để có được hình ảnh của một album facebook trong iPhone SDK?

Bây giờ tôi muốn tải ảnh từ album này.

Bất kỳ ý tưởng nào cũng sẽ được đánh giá cao.

Cảm ơn trước.

+0

http://stackoverflow.com/questions/30207465/ios-facebook-album- photos-picker/31789234 # 31789234 –

Trả lời

13

Vì vậy,/tôi/album trả về một mảng là Album objects, mỗi trong số đó có một số id.

Nếu một album có một id của 99394368305, bạn có thể đi đến

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

để có được một mảng của photo objects.

Mỗi phòng trong số này sẽ có các thuộc tính picturesource để lấy dữ liệu hình ảnh từ facebook.

Tất cả chúng cũng sẽ có một mảng images nếu bạn muốn hình ảnh được chia tỷ lệ thay vì chỉ là ảnh gốc.


Tất cả truy vấn facebook trả lại JSON - Tôi giả sử bạn biết cách phân tích cú pháp này?

+0

Cảm ơn, Nó giúp tôi. – Apekshit

+0

Bạn có thể vui lòng trả lời câu hỏi này không? http://stackoverflow.com/questions/4957260/how-to-comment-or-like-a-photo-in-facebook-through-fbconnect-or-graph-api-in-ipho – Apekshit

+1

@ câu trả lời của khán giả có vẻ như tại chỗ trên đã :) – deanWombourne

3

Mất nhiều thời gian vì các bước sau;

1) có được uid của bạn sử dụng:

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

2) đưa bạn bè UID để có được id album:

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) sau đó đặt id album để có được những hình ảnh từ album :

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

Vui lòng cho tôi biết một số phương pháp khác để có được ảnh tiểu sử có kích thước lớn trong một bước để tiết kiệm thời gian.

+0

nhưng tôi không chịu đựng điều đó .. tất cả 3 phương pháp này mà tôi đặt.? tôi là người mới trong ios. vì vậy plz hướng dẫn tôi thích hợp. – Raju

3

Mã bên dưới sẽ thực hiện công việc phù hợp với bạn. Nó nhận được album cho người dùng đã đăng nhập và sau đó yêu cầu cho ảnh của album này. Ở nơi nhận xét, bạn sẽ có quyền truy cập vào tất cả các ảnh. Để biết thêm bạn có thể tham khảo 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

Đây là lỗi thời/không được chấp nhận bởi các nhà phát triển Facebook, nếu bạn nhấp vào liên kết tài liệu. Do đó tôi đang thêm mã mới của chúng bên dưới. – karan

0

nhà phát triển Facebook mã mới:

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

Các vấn đề liên quan