2012-07-27 65 views
5

Tôi muốn cho phép người dùng iPhone App xem và chọn từ ảnh hồ sơ facebook của họ, tải xuống ảnh để sử dụng làm ảnh tiểu sử. Tôi hiện đang sử dụng SDK SSO của Facebook và đăng nhập thành công và truy cập thông tin Biểu đồ. Đã cố gắng truy cập thông tin ảnh (sau khi đăng nhập SSO thành công) bằng cách sử dụngLàm thế nào để tải xuống album, ảnh hồ sơ dữ liệu

[facebook requestWithGraphPath:@"me/albums"]; 

nhưng tôi vừa nhận được một đối tượng dữ liệu trống. Tôi đã thử sử dụng Facebook API explorer, điều này rất hữu ích và nó cung cấp cho tôi dữ liệu cho/ảnh và/ảnh và/album. Đối với một số lý do tôi không nhận được cùng một dữ liệu bằng cách sử dụng requestWithGraphPath với tôi/album, tôi/hình ảnh hoặc tôi/hình ảnh. Chỉ đơn giản là "tôi" hoạt động tốt nhưng không cho tôi bất kỳ thông tin hình ảnh nào. Ai có thể cho tôi biết tôi đang làm gì sai?

Lưu ý: đây là tài liệu tham khảo API: Facebook Graph API

tôi đã nhận được hồ sơ hình ảnh để làm việc như thế này:

[facebook requestWithGraphPath:@"me?fields=picture"]; 

Cập nhật: thực sự tôi muốn tất cả các hồ sơ hình ảnh mà là một album ảnh để Tôi cần biết cách truy cập album thông qua iOS. Ảnh hồ sơ tôi đã thu được thành công ngay bây giờ.

Tôi đã thêm điều khoản "user_photos" và "friends_photos" cho album ảnh theo API:

NSArray *permissions = [[NSArray alloc] initWithObjects: 
          @"user_likes", 
          @"user_birthday", 
          @"email", 
          @"publish_stream", 
          @"publish_actions", 
          @"user_photos", 
          @"friends_photos", 
          nil]; 
    [facebook authorize:permissions]; 

Khi tôi nói tôi nhận được dữ liệu rỗng, đây là kết quả JSON (trong yêu cầu: didLoad:) mà được trả về:

{ 
    data =  (
    ); 
} 

Từ đầu ra tập tin đăng nhập của tôi:

- (void) request:(FBRequest *)request didLoad:(id)result{ 
    NSLog(@"%@",result); 

} 

cuối cùng Lưu ý: Điều gì cuối cùng đã làm việc là sử dụng một thiết bị khác, cập nhật quyền của tôi và sau đó mọi thứ bắt đầu hoạt động! Đoán tốt nhất của tôi là giả lập và iPhone của tôi đã không cập nhật quyền facebook của tôi vì vậy tôi đã bị từ chối truy cập vào ảnh và nhận được một mảng dữ liệu trống.

này SO câu hỏi là một trợ giúp lớn thêm: How to get photos of a facebook album in iPhone SDK?

Trả lời

8

Vì lợi ích của người xem trong tương lai, tôi đặt câu trả lời cho câu hỏi của riêng mình vì tôi chưa nhận được câu trả lời hoàn chỉnh từ bất kỳ ai khác.

Trước tiên, bạn phải có quyền phù hợp, hoặc là "user_photos" hoặc "friends_photos". Sau đó, bạn phải đảm bảo rằng thiết bị thử nghiệm của bạn cập nhật quyền của bạn - tôi nghĩ việc khởi động lại thiết bị là điều cuối cùng đã làm cho tôi.

Một khi bạn đã làm điều đó, bạn có thể nhận được danh sách JSON của album, sau khi đăng nhập qua SSO, sử dụng cuộc gọi này:

[facebook requestWithGraphPath:@"me/albums" andDelegate:self]; 

này sẽ cung cấp JSON mảng (dưới phím data) với tất cả các loại thông tin về từng album, bao gồm cả ID. Để có được một danh sách các hình ảnh cho một ID album đặc biệt (nói nó '123456789') làm như sau:

NSString * albumId = @"123456789"; 
NSString * path = [NSString stringWithFormat:@"%@/photos", albumId]; 
[facebook requestWithGraphPath:path andDelegate:self]; 

phản ứng của bạn sẽ tất nhiên đi qua FBRequestDelegate phương pháp request:didLoad nơi bạn có thể xử lý dữ liệu JSON.

+0

Tôi có thể lấy một bản sao tác phẩm của bạn về điều này không? Tôi cũng muốn cho phép người dùng lấy ảnh từ FB của họ nhưng không biết bắt đầu từ đâu. – Shinigamae

+0

Tôi nhận được kết quả === { dữ liệu = ( ); } theo yêu cầu của tôi/album. Bạn có thể đề xuất điều gì sai. – Imran

+0

@Imran bạn có kiểm tra các quyền của mình và đảm bảo rằng bạn đã đăng nhập chính xác không? Ngoài ra, tôi đề nghị bạn đăng một câu hỏi mới, chúc may mắn! –

1

Tải thư mục FBGraph tài liệu Api sau đó thêm nó vào trong thư mục của bạn. và đọc hướng dẫn trên trang web dành cho nhà phát triển facebook http://developers.facebook.com/docs/reference/api/.

Đây là mã mẫu - sample code

Trong này, bạn sẽ nhận được một lý lịch thành viên pic trong UIAlertView. Bạn có thể hiển thị nó ở nơi bạn muốn.

+0

Cảm ơn, tôi sẽ xem xét mã mẫu - mặc dù tôi thấy một lưu ý rằng mã đó không còn được duy trì nữa, có phải là cập nhật này không? –

+0

Hey tôi chắc chắn bạn sẽ tìm thấy nó tuyệt vời. Tôi đã sử dụng nó trong một ứng dụng của tôi. Có một phương thức - (IBAction) getAuthorPictureButtonPressed: (id) người gửi. Chỉ cần kiểm tra xem nó – TheTiger

+0

Tôi sẽ thử nó ra, chắc chắn hữu ích. –

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