2013-07-06 20 views
7

Tôi có một mã để đăng nhập vào Facebook với quyền 'publish_actions'. Sau đây là đoạn:Facebook iOS SDK: Cách xử lý nút SKIP khi yêu cầu publish_actions?

NSArray *facebookPermissions = [NSArray arrayWithObjects:@"publish_actions", nil]; 

[FBSession openActiveSessionWithPublishPermissions:[self facebookPermissions] 
            defaultAudience:FBSessionDefaultAudienceFriends 
             allowLoginUI:YES 
           completionHandler:^(FBSession *session, FBSessionState state, NSError *error) { 
    NSLog(@">>> Permissions available: %@", FBSession.activeSession.permissions); 
}]; 

Khi phương pháp đó được thực thi, người dùng sẽ được chuyển hướng đến trang Mobile Safari Facebook và hỏi liệu facebook được phép truy cập/tài khoản của mình.

Screen1:

APPNAME would like to access your public profile and friend list. 
[CANCEL] [OK] 

Sau khi nhấn OK, vì chúng ta sử dụng phương pháp openActiveSessionWithPublishPermissions, trang thứ hai sẽ xuất hiện hỏi nếu facebook được phép xuất bản thứ thay cho bạn.

Màn hình 2:

APPNAME would like to post to your friends on your behalf. 
[AUDIENCE] [SKIP] [OK] 

Phần khôn lanh là, khi người dùng nhấp nút SKIP, nhật ký trong callback vẫn liệt kê 'publish_actions' là một trong những điều khoản có sẵn. Cái nào không đúng. Các error cũng là không. Làm thế nào để tôi phát hiện điều này đúng cách?

Đây là nhật ký:

2013-07-06 16:35:59.037 FbSandbox[56213:c07] >>> Permissions available: ("publish_actions") 

Cảm ơn trước!

Trả lời

3

Bạn có thể xác thực các quyền được chấp nhận theo số callingme/permissions. Điều này sẽ liệt kê các quyền mà người dùng đã cho phép. Tham chiếu chéo danh sách này với các quyền mà bạn yêu cầu và bạn sẽ có thể tìm ra những danh sách được chấp nhận và danh sách này bị bỏ qua.

+0

Điều này dường như là câu trả lời. Thiết kế API hoàn toàn khủng khiếp. –

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