2013-09-27 153 views
9

tôi dường như đang gặp vấn đề tương tự như đã trình bày trong câu hỏi này: Facebook SDK for Unity on Android - Trouble about callback from FB.LoginFacebook Unity SDK trên Android - Đăng nhập không thành công khi FB App cài đặt

Trên Android khi ứng dụng Facebook thường xuyên được cài đặt, các cuộc gọi đến FB.Login() sử dụng Unity SDK nhắc người dùng chấp nhận quyền truy cập cho các ứng dụng và khi ứng dụng được chấp nhận gọi lại là bắn với: FBResult.Text

{"is_logged_in":false,"user_id":"","access_token":""}

FBResult.Error

null

Khi ứng dụng Facebook được cài đặt luồng web được sử dụng và hoạt động tốt, tuy nhiên tôi đã thử điều này với v4.2.4 và v4.2.2 của Unity SDK.

Bất kỳ lời khuyên nào khác về việc giải quyết vấn đề này?

EDIT: cũng nên lưu ý, tôi đã cố gắng này trên 2 thiết bị khác nhau (Galaxy Note 10.1 và Nexus 7)

Cảm ơn trước!


Lưu ý cho năm 2014. Trong một số trường hợp, vấn đề rất đơn giản là bạn đã quên cài đặt trên developers.facebook. Brian giải thích nó ở đây với hình ảnh: http://answers.unity3d.com/questions/543540/facebook-sdk-v424-android-login-not-working.html Nhạy cảm nó S WORK LÀM VIỆC (!) Trên các thiết bị KHÔNG CÓ ứng dụng fb, nếu bạn đã hoàn toàn quên cài đặt. Đối với các vấn đề thực tế, may mắn thay có một giải pháp ngay cả khi bạn đang sử dụng Unity trên máy Mac và nó rất đơn giản: http://answers.unity3d.com/questions/609810/using-facebook-api-with-android-says-login-is-canc.html

+0

Nó sẽ có thể để bạn có thể gửi cho chúng tôi dự án của bạn vì vậy chúng tôi có thể cố gắng để gỡ lỗi nó? Sử dụng [email protected] nếu bạn muốn gửi cho chúng tôi một liên kết để tải xuống (hoặc chỉ cần đính kèm nó). Cảm ơn báo cáo chi tiết! – aaron

+1

Xin lỗi đã có nó cố định nhưng stackoverflow không muốn tôi trả lời câu hỏi của riêng tôi khá nào. Có lẽ sẽ có một cách trực quan hơn để trả lại lỗi đó cho Unity SDK? :) – Brizee

+0

@BrianBeacom Xin chào, tôi đang gặp vấn đề tương tự với plugin. Thậm chí đã nhập mã băm có trong nhật ký vào bảng điều khiển dành cho nhà phát triển. NHƯNG Tôi rất không chắc chắn về cách làm điều này. Một số chủ đề được đề xuất --- -> Ứng dụng FB sẽ được cập nhật lên phiên bản mới nhất. -> Hàm băm được tạo trong logcat phải được nhập vào bảng điều khiển dành cho nhà phát triển. -> Chúng ta phải tạo một kho khóa (riêng của chúng tôi) và đặt hashkey được tạo vào bảng điều khiển. Tôi đã thực hiện tất cả các bước và vẫn bị kẹt vào cùng một vấn đề. Có lẽ bạn có thể hướng dẫn tôi vào nó. –

Trả lời

5

Ach cảm thấy thật ngớ ngẩn, cuối cùng quản lý để giải quyết nó bản thân mình, bằng cách triển khai một trung gian Google Android dự án, tôi đã có thể sử dụng logcat để có được một Thông tin về lỗi hữu ích hơn:

remote_app_id không phù hợp với lưu trữ id

Từ đó tôi thấy chủ đề này có liên quan đến Android SDK tiêu chuẩn: Android Facebook SDK 3.0 gives "remote_app_id does not match stored id" while logging in

Và cuối cùng giải quyết vấn đề bằng cách thay thế Hash chính với một thu được bằng đoạn mã này

try { 
PackageInfo info = getPackageManager().getPackageInfo(
     "com.facebook.samples.loginhowto", PackageManager.GET_SIGNATURES); 
for (Signature signature : info.signatures){ 
     MessageDigest md = MessageDigest.getInstance("SHA"); 
     md.update(signature.toByteArray()); 
     Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT)); 
} 
} catch (NameNotFoundException e) { 
} catch (NoSuchAlgorithmException e) { 
} 

Thay com.facebook.samples.loginhowto với tên gói của riêng bạn tất nhiên

Nguồn: https://stackoverflow.com/a/14421260/2823496

Có vẻ như nhận được keyhash chính xác, thông qua dòng lệnh hoặc thông qua Unity phụ thuộc vào lần thứ e phiên bản đúng của openssl được cài đặt (và được lưu trữ trong PATH) nhưng không có ý tưởng phiên bản đó là gì. (cố gắng một trong những câu trả lời liên kết) Vì vậy, đứng đầu cho bất cứ ai khác đấu tranh với điều này.


Lưu ý - gần như không thể thực hiện việc này nếu bạn đang sử dụng Mac để phát triển Unity.Đây là giải pháp đơn giản may mắn trong trường hợp đó http://answers.unity3d.com/questions/609810/using-facebook-api-with-android-says-login-is-canc.html

+0

Bạn có thể cho tôi biết bạn đã đặt đoạn mã này khi nào? Tôi đang cố gắng để đặt nó trên các lớp học được tạo ra bởi sự thống nhất (UnityPlayerActivity, UnityPlayerNativeActivity, UnityPlayerProxyActivity) nhưng không có gì đang được đăng nhập. –

+1

@ Álvaro Ah có một chút rắc rối, một phần của cách hoạt động của plugin Facebook là tạo ra FBUnityPlayerActivity và chạy các yêu cầu thông qua việc này. Vì vậy, bạn cần thay đổi tệp manifest.xml để: là dưới UnityPlayerActivity hay, tôi tưởng tượng bạn có thể gọi nó trong một số cách khác như làm (ra khỏi đỉnh đầu của tôi) adb shell \t am start com.company .appname/.UnityPlayerActivity – Brizee

+0

Bah, Markdown không phải là bạn của tôi xin lỗi, hy vọng bạn có thể lấy đoạn mã từ đó. :) – Brizee

0

Tôi đã gặp lỗi tương tự. Và tôi đã xóa ứng dụng facebook. Ứng dụng của tôi đang làm việc tốt


THÊM VỀ RẰNG: https://stackoverflow.com/a/23446140/294884

+0

Xin chúc mừng bạn tôi, bạn đã lặp lại nhiều câu hỏi :) Không, nếu nó chỉ là vì việc sử dụng của tôi tốt, thật không may, tôi không thể giới hạn thị trường cho ứng dụng của mình cho những người chưa cài đặt Facebook. Hãy xem câu trả lời được chấp nhận ở trên nếu bạn muốn tự giải quyết. :) – Brizee

+0

vấn đề tôi phải giải quyết khi tôi g băm khóa chính xác và thêm nó vào Facebook/ứng dụng trên nhà phát triển facebook –

+0

@longpham Xin chào Tôi đang gặp vấn đề tương tự với plugin. Thậm chí đã nhập mã băm có trong nhật ký vào bảng điều khiển dành cho nhà phát triển. NHƯNG Tôi rất không chắc chắn về cách làm điều này. Bạn có thể giúp tôi làm việc này không. Tôi sẽ vui mừng Cảm ơn trước. –