[英]Facebook Unity SDK on Android - Login fails when FB App installed
我似乎遇到了與此問題中討論的問題相同的問題: Android上用於Unity的Facebook SDK - 來自FB.Login的回調問題
在Android上安裝常規Facebook應用程序時,使用Unity SDK調用FB.Login()會提示用戶接受應用程序的權限,當應用程序獲得批准時,將觸發回調:FBResult.Text
{"is_logged_in":false,"user_id":"","access_token":""}
FBResult.Error
null
當安裝Facebook應用程序時,使用Web流程並且工作正常,但我已經嘗試使用Unity SDK的v4.2.4和v4.2.2。
有關解決此問題的任何其他建議嗎?
編輯:還應該注意,我已經嘗試過2種不同的設備(Galaxy Note 10.1和Nexus 7)
提前致謝!
2014年的一個注釋。在某些情況下,問題非常簡單,你忘記了developers.facebook上的設置。 Brian用圖片解釋了這里: http: //answers.unity3d.com/questions/543540/facebook-sdk-v424-android-login-not-working.html令人困惑的是它會在沒有fb應用程序的設備上運行(!),如果你完全忘記了設置。 至於實際問題,幸運的是,即使你在Mac上使用Unity 也有一個解決方案很簡單: http : //answers.unity3d.com/questions/609810/using-facebook-api-with-android-says-登錄-IS-canc.html
Ach覺得很傻,最終設法解決了這個問題,通過部署到中間件谷歌Android項目,我能夠使用logcat獲得更有用的錯誤消息:
remote_app_id與存儲的id不匹配
從那里我發現這個主題與標准Android SDK有關: Android Facebook SDK 3.0在登錄時給出“remote_app_id與存儲的id不匹配”
最后通過將Key Hash替換為此代碼段獲得的Key Hash來解決問題
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) {
}
當然,用您自己的包名替換com.facebook.samples.loginhowto
資料來源: https : //stackoverflow.com/a/14421260/2823496
似乎通過命令行或Unity獲得正確的keyhash取決於安裝了正確版本的openssl(並存儲在PATH中),但不知道是什么版本。 (嘗試了相關答案中的那個)所以要對付其他任何與之斗爭的人。
注意 - 如果您使用Mac進行Unity開發,則幾乎不可能這樣做。 在這種情況下,這是幸運的簡單解決方案http://answers.unity3d.com/questions/609810/using-facebook-api-with-android-says-login-is-canc.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.