Tôi đang phát triển một ứng dụng Android tích hợp với facebook. Các ứng dụng hoạt động hoàn toàn tốt đẹp khi tôi đặt LoginButton.setLoginBehavior (SessionLoginBehavior.SUPPRESS_SSO).SSO (Singe Sign-On) không hoạt động khi ứng dụng Facebook được cài đặt trên thiết bị
Sự cố phát sinh khi tôi cố gắng sử dụng SSO. Tôi nhận được lỗi dưới đây. Tôi sử dụng để có được một lỗi tương tự khi tôi sử dụng một keyhash không chính xác; đây không phải là trường hợp nữa vì nhật ký Webview hoạt động tốt. Sự kiện đáng ngạc nhiên hơn là ứng dụng Android hoạt động nếu ứng dụng được cài đặt trong FB. Ví dụ, tôi là người quản lý ứng dụng do đó nó được cài đặt trong hồ sơ facebook của tôi theo mặc định, nhưng khi tôi thử với một tài khoản fb khác mà không cài đặt ứng dụng thì nó không hoạt động. Khi tôi cố gắng đăng nhập vào lỗi dưới đây xuất hiện và tôi nhận được một hộp thoại nói với tôi rằng quyền cơ bản sẽ được cấp, nhưng trong thực tế tôi thậm chí không nhận được quyền cơ bản.
Tôi đã gửi ứng dụng để xem xét để hiển thị ứng dụng trên Trung tâm ứng dụng. Khi tôi làm điều đó, hộp thoại sẽ hiển thị hộp kiểm nơi tôi xác nhận rằng ứng dụng của tôi sử dụng SSO. Facebook có cần phê duyệt ứng dụng của tôi trước khi tôi có thể sử dụng SSO (nếu có, điều này không có ý nghĩa)
Tôi đã bỏ ra hàng giờ để giải quyết vấn đề này và tôi không thể tìm ra giải pháp. Hãy giúp tôi.
08-24 01:39:16.058: W/Bundle(21880): Key com.facebook.platform.protocol.PROTOCOL_VERSION expected String but value was a java.lang.Integer. The default value <null> was returned.
08-24 01:39:16.068: W/Bundle(21880): Attempt to cast generated internal exception:
08-24 01:39:16.068: W/Bundle(21880): java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
08-24 01:39:16.068: W/Bundle(21880): at android.os.Bundle.getString(Bundle.java:1069)
08-24 01:39:16.068: W/Bundle(21880): at android.content.Intent.getStringExtra(Intent.java:4350)
08-24 01:39:16.068: W/Bundle(21880): at com.facebook.AuthorizationClient$KatanaLoginDialogAuthHandler.tryAuthorize(AuthorizationClient.java:821)
08-24 01:39:16.068: W/Bundle(21880): at com.facebook.AuthorizationClient.tryCurrentHandler(AuthorizationClient.java:272)
08-24 01:39:16.068: W/Bundle(21880): at com.facebook.AuthorizationClient.tryNextHandler(AuthorizationClient.java:238)
08-24 01:39:16.068: W/Bundle(21880): at com.facebook.AuthorizationClient$GetTokenAuthHandler.getTokenCompleted(AuthorizationClient.java:772)
08-24 01:39:16.068: W/Bundle(21880): at com.facebook.AuthorizationClient$GetTokenAuthHandler$1.completed(AuthorizationClient.java:731)
08-24 01:39:16.068: W/Bundle(21880): at com.facebook.internal.PlatformServiceClient.callback(PlatformServiceClient.java:144)
08-24 01:39:16.068: W/Bundle(21880): at com.facebook.internal.PlatformServiceClient.handleMessage(PlatformServiceClient.java:128)
08-24 01:39:16.068: W/Bundle(21880): at com.facebook.internal.PlatformServiceClient$1.handleMessage(PlatformServiceClient.java:54)
08-24 01:39:16.068: W/Bundle(21880): at android.os.Handler.dispatchMessage(Handler.java:99)
08-24 01:39:16.068: W/Bundle(21880): at android.os.Looper.loop(Looper.java:137)
08-24 01:39:16.068: W/Bundle(21880): at android.app.ActivityThread.main(ActivityThread.java:5227)
08-24 01:39:16.068: W/Bundle(21880): at java.lang.reflect.Method.invokeNative(Native Method)
08-24 01:39:16.068: W/Bundle(21880): at java.lang.reflect.Method.invoke(Method.java:511)
08-24 01:39:16.068: W/Bundle(21880): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
08-24 01:39:16.068: W/Bundle(21880): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562)
08-24 01:39:16.068: W/Bundle(21880): at dalvik.system.NativeStart.main(Native Method)
Trong khi ClassCastException chắc chắn là không tốt, tôi không nghĩ rằng đó là nguyên nhân của các vấn đề của bạn. Bạn có thể thấy nếu có bất kỳ ngoại lệ nào được trả lại trong Session.StatusCallback của bạn không? –
ClassCastException được ném bởi SDK Facebook vì có một số cuộc gọi sẽ trả về một Chuỗi (có thể một số khóa Auth) khi ứng dụng kết nối đúng và không phải là Số nguyên. – Emmanuel
Tôi hiểu điều đó, nhưng nó cũng không gây ra sự cố đăng nhập thực tế với ứng dụng mẫu hoặc toàn bộ người khác hiện đang ở trên 3,5, vì vậy giả thuyết của tôi là có các vấn đề khác khiến ứng dụng của bạn không thể đăng nhập Bạn có thể vui lòng kiểm tra xem có bất kỳ ngoại lệ nào được chuyển đến StatusCallback của bạn không? –