2015-08-12 24 views
19

Điều gì đó phải thay đổi gần đây trên các máy chủ của Facebook liên quan đến cách họ xử lý các yêu cầu đăng nhập vì điều này từng hoạt động hoàn hảo và đột nhiên dừng lại.FBSDKLoginManager với FBSDKLoginBehaviorWeb thất bại với lỗi "Not Logged In"

(Chúng tôi đang sử dụng FBSDKLoginManager.loginBehavior = FBSDKLoginBehaviorWeb vì cách ứng dụng của chúng tôi được nhân rộng cho nhiều thương hiệu (một codebase, nhiều ứng dụng) và các vấn đề chúng tôi chạy vào sử dụng tên đăng nhập có nguồn gốc.)

Nhưng dù sao, đây là những gì chúng ta thấy bây giờ khi chúng tôi cố gắng trình bày một webview đăng nhập cho người dùng (trước nó thậm chí còn cho phép họ cố gắng để đăng nhập):

enter image description here

(chưa đăng nhập. Bạn chưa đăng nhập Hãy đăng nhập và thử lại.)

Đây là mã chúng tôi đang sử dụng để trình bày quan điểm đăng nhập:

NSString *const publish_actions = @"publish_actions"; 
FBSDKLoginManager* login = [FBSDKLoginManager new]; 
login.loginBehavior = FBSDKLoginBehaviorWeb; 
[login logInWithPublishPermissions:@[publish_actions] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) { 
    [FBSDKAccessToken setCurrentAccessToken:result.token]; 
    // ... 
}]; 

Cũng lưu ý rằng vấn đề này là không cụ thể cho iOS. Ứng dụng Android của chúng tôi đang nhìn thấy cùng một điều (và một lần nữa nó được sử dụng để làm việc tốt cho đến gần đây).

Trả lời

35

Tôi đã có lỗi này cùng ... có vẻ như mặc dù vấn đề này nằm trong info.plist thiết lập Đề án URL của bạn: Facebook SDK: app not registered as a URL Scheme

Tuy nhiên, thêm những dẫn đến các ứng dụng gửi cho bạn tắt đến các ứng dụng Facebook thực tế cho xác thực, thay vì hiển thị phương thức đăng nhập trong ứng dụng của riêng bạn.

** CẬP NHẬT **

Xin lỗi, tôi nói quá sớm ... những thay đổi trên sẽ giúp những điều trên (hoặc thay đổi dòng chảy sử dụng theo những cách bạn không muốn), nhưng những gì thực sự cần thiết để xảy ra (và đây là điều duy nhất), chỉ cần thêm một "Nền tảng iOS" (hoặc khác) vào cài đặt ứng dụng của bạn trong cổng thông tin Nhà phát triển Facebook. Đây là những gì đã làm cho tôi dù sao. :)

enter image description here

+0

Bạn phải tất cả những gì đã kết thúc việc là để thêm một bó wildcard id ('com.mycompany. *') Để thiết lập nền tảng iOS và để lại mọi thứ khác trống/tắt. Dường như với tôi tôi đã thử điều này trong quá khứ mà không thành công, nhưng tôi đã thử nó ngay bây giờ và đăng nhập bây giờ đang làm việc một lần nữa! – devios1

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