无法登录 / Facebook Unity SDK & Android

Posted

技术标签:

【中文标题】无法登录 / Facebook Unity SDK & Android【英文标题】:Unable to login / Facebook Unity SDK & Android 【发布时间】:2014-02-05 13:13:40 【问题描述】:

Facebook Unity SDK:5.0.3 测试版

当我尝试登录已安装 Facebook 应用程序时,它询问我是否允许此应用程序访问我的个人资料(然后我可以在我的个人资料应用程序页面中的 facebook 上看到确实提供了访问权限),但此后没有任何反应.交互式控制台(Unity SDK 附带的示例)仍然没有显示我已登录的迹象。

当我按下登录按钮时,logcat 中会发生以下情况:

D/FBUnitySDK(21729): KeyHash: BR6n1yxjFrxzrkkeDey3fzy7Mb0=
V/FBUnitySDK(21729): sending to Unity OnLoginComplete("cancelled":true,"key_hash":"BR6n1yxjFrxzrkkeDey3fzy7Mb0=\n")

如果我要删除 facebook 应用程序,它会向我显示小的 webview,我应该在其中输入我的凭据。输入后它会再次出现,两个输入字段都为空,并且这种重新出现没有尽头(除非我放弃并按取消/X)。

当我尝试登录 webview 时,logcat 中会发生以下情况:

D/FacebookSDK.WebDialog(21729): Webview loading URL: https://m.facebook.com/dialog/oauth?display=touch&e2e=%7B%22init%22%3A1391609676100%7D&client_id=620142358054713&scope=email&type=user_agent&redirect_uri=fbconnect%3A%2F%2Fsuccess
D/FacebookSDK.WebDialog(21729): Webview loading URL: https://m.facebook.com/dialog/oauth?display=touch&e2e=%7B%22init%22%3A1391609676538%7D&client_id=620142358054713&scope=email&type=user_agent&redirect_uri=fbconnect%3A%2F%2Fsuccess
D/FacebookSDK.WebDialog(21729): Redirect URL: https://m.facebook.com/login.php?skip_api_login=1&api_key=620142358054713&signed_next=1&next=https%3A%2F%2Fm.facebook.com%2Fdialog%2Foauth%3Fredirect_uri%3Dfbconnect%253A%252F%252Fsuccess%26display%3Dtouch%26scope%3Demail%26type%3Duser_agent%26client_id%3D620142358054713%26ret%3Dlogin&cancel_uri=fbconnect%3A%2F%2Fsuccess%3Ferror%3Daccess_denied%26error_code%3D200%26error_description%3DPermissions%2Berror%26error_reason%3Duser_denied%26e2e%3D%257B%2522init%2522%253A1391609676538%257D&display=touch&_rdr
D/FacebookSDK.WebDialog(21729): Webview loading URL: https://m.facebook.com/login.php?skip_api_login=1&api_key=620142358054713&signed_next=1&next=https%3A%2F%2Fm.facebook.com%2Fdialog%2Foauth%3Fredirect_uri%3Dfbconnect%253A%252F%252Fsuccess%26display%3Dtouch%26scope%3Demail%26type%3Duser_agent%26client_id%3D620142358054713%26ret%3Dlogin&cancel_uri=fbconnect%3A%2F%2Fsuccess%3Ferror%3Daccess_denied%26error_code%3D200%26error_description%3DPermissions%2Berror%26error_reason%3Duser_denied%26e2e%3D%257B%2522init%2522%253A1391609676538%257D&display=touch&_rdr
D/FacebookSDK.WebDialog(21729): Webview loading URL: https://m.facebook.com/login.php?skip_api_login=1&api_key=620142358054713&signed_next=1&next=https%3A%2F%2Fm.facebook.com%2Fdialog%2Foauth%3Fredirect_uri%3Dfbconnect%253A%252F%252Fsuccess%26display%3Dtouch%26scope%3Demail%26type%3Duser_agent%26client_id%3D620142358054713%26ret%3Dlogin&cancel_uri=fbconnect%3A%2F%2Fsuccess%3Ferror%3Daccess_denied%26error_code%3D200%26error_description%3DPermissions%2Berror%26error_reason%3Duser_denied%26e2e%3D%257B%2522init%2522%253A1391609676538%257D&display=touch&_rdr
D/FacebookSDK.WebDialog(21729): Webview loading URL: https://m.facebook.com/login.php?skip_api_login=1&signed_next=1&next=https%3A%2F%2Fm.facebook.com%2Fdialog%2Foauth%3Fredirect_uri%3Dfbconnect%253A%252F%252Fsuccess%26display%3Dtouch%26scope%3Demail%26type%3Duser_agent%26client_id%3D620142358054713%26ret%3Dlogin&refsrc=https%3A%2F%2Fm.facebook.com%2Flogin.php&refid=9
D/FacebookSDK.WebDialog(21729): Redirect URL: https://m.facebook.com/dialog/oauth?redirect_uri=fbconnect%3A%2F%2Fsuccess&display=touch&scope=email&type=user_agent&client_id=620142358054713&ret=login&ext=1391613294&hash=Aea6t5pfgOeXQyOH&refsrc=https%3A%2F%2Fm.facebook.com%2Flogin.php&refid=9&m_sess=c2VzczoxMDAwMDU2MzQ0ODY4ODI6Mjk6Uk5FLWFfTXV5RE9ZeHc6MjoxMzkxNjA5Njk0OjE0MDMx&_rdr#_=_
D/FacebookSDK.WebDialog(21729): Webview loading URL: https://m.facebook.com/dialog/oauth?redirect_uri=fbconnect%3A%2F%2Fsuccess&display=touch&scope=email&type=user_agent&client_id=620142358054713&ret=login&ext=1391613294&hash=Aea6t5pfgOeXQyOH&refsrc=https%3A%2F%2Fm.facebook.com%2Flogin.php&refid=9&m_sess=c2VzczoxMDAwMDU2MzQ0ODY4ODI6Mjk6Uk5FLWFfTXV5RE9ZeHc6MjoxMzkxNjA5Njk0OjE0MDMx&_rdr#_=_
D/FacebookSDK.WebDialog(21729): Webview loading URL: https://m.facebook.com/dialog/oauth/confirm
D/FacebookSDK.WebDialog(21729): Redirect URL: fbconnect://success#access_token=xxx&expires_in=5179467
D/FacebookSDK.WebDialog(21729): Webview loading URL: https://m.facebook.com/dialog/oauth?display=touch&e2e=%7B%22init%22%3A1391609698785%7D&client_id=620142358054713&scope=email&type=user_agent&redirect_uri=fbconnect%3A%2F%2Fsuccess
D/FacebookSDK.WebDialog(21729): Redirect URL: https://m.facebook.com/login.php?skip_api_login=1&api_key=620142358054713&signed_next=1&next=https%3A%2F%2Fm.facebook.com%2Fdialog%2Foauth%3Fredirect_uri%3Dfbconnect%253A%252F%252Fsuccess%26display%3Dtouch%26scope%3Demail%26type%3Duser_agent%26client_id%3D620142358054713%26ret%3Dlogin&cancel_uri=fbconnect%3A%2F%2Fsuccess%3Ferror%3Daccess_denied%26error_code%3D200%26error_description%3DPermissions%2Berror%26error_reason%3Duser_denied%26e2e%3D%257B%2522init%2522%253A1391609698785%257D&display=touch&_rdr
D/FacebookSDK.WebDialog(21729): Webview loading URL: https://m.facebook.com/login.php?skip_api_login=1&api_key=620142358054713&signed_next=1&next=https%3A%2F%2Fm.facebook.com%2Fdialog%2Foauth%3Fredirect_uri%3Dfbconnect%253A%252F%252Fsuccess%26display%3Dtouch%26scope%3Demail%26type%3Duser_agent%26client_id%3D620142358054713%26ret%3Dlogin&cancel_uri=fbconnect%3A%2F%2Fsuccess%3Ferror%3Daccess_denied%26error_code%3D200%26error_description%3DPermissions%2Berror%26error_reason%3Duser_denied%26e2e%3D%257B%2522init%2522%253A1391609698785%257D&display=touch&_rdr
D/FacebookSDK.WebDialog(21729): Webview loading URL: https://m.facebook.com/login.php?skip_api_login=1&api_key=620142358054713&signed_next=1&next=https%3A%2F%2Fm.facebook.com%2Fdialog%2Foauth%3Fredirect_uri%3Dfbconnect%253A%252F%252Fsuccess%26display%3Dtouch%26scope%3Demail%26type%3Duser_agent%26client_id%3D620142358054713%26ret%3Dlogin&cancel_uri=fbconnect%3A%2F%2Fsuccess%3Ferror%3Daccess_denied%26error_code%3D200%26error_description%3DPermissions%2Berror%26error_reason%3Duser_denied%26e2e%3D%257B%2522init%2522%253A1391609698785%257D&display=touch&_rdr

ios 上登录可以正常工作,但我在 android 上可以做什么?

更新:在 4.3.6 SDK 版本上一切正常

【问题讨论】:

【参考方案1】:

您是否在没有任何权限的情况下登录?有一个已知错误,如果未指定权限,FB.Login() 将不起作用。试试FB.Login("basic_info", <your_callback>)

见:Unity Beta SDK 5.0.3 - Problems logging in on Android device

【讨论】:

我正在使用指定的 basic_info 和电子邮件权限登录【参考方案2】:

只有在我开始以纵向屏幕模式登录时才能登录。如果我以横向启动它 - 它会强制更改为纵向并返回,但除此之外什么也没有发生。在没有重建的情况下测试了几次 - 确认。我认为这是一个错误。

【讨论】:

感谢您的错误报告。我们正在调查。 与此同时,您可以自行修复:***.com/questions/21354281/…【参考方案3】:

SDK 中存在严重问题。

SDK使用幻像活动FBUnityLoginActivity,它从onCreate()调用FB.LoginUsingActivity(),但是活动没有 android:configChanges 属性,并且它被 Android 重新启动,因为它从 lansdcape 切换到纵向。它会导致第二次调用 FB.LoginUsingActivity(),从而取消之前的异步登录。

解决方案是在所有活动上指定正确的 android:configChangesandroid:screenOrientation

我认为 Facebook 团队应该使用 runOnUiThread() 而不是幻像活动。

【讨论】:

以上是关于无法登录 / Facebook Unity SDK & Android的主要内容,如果未能解决你的问题,请参考以下文章

Facebook Unity SDK 测试用户登录

Android上的Unity Facebook SDK登录错误

使用适用于 Android 的 Facebook Unity SDK 登录 facebook 时应用程序强制关闭

Facebook Unity SDK iOS 登录不使用系统级登录,而是使用浏览器或 Facebook 应用程序

Unity:无法将类转换为dex格式插件:Unity IAP 1.16 Facebook SDK 7.13.0 [复制]

使用 Facebook 令牌的 Firebase Unity SDK 身份验证