我正在为Unity项目使用最新的facebook sdk for unity(Package 4.3.6)。每当我尝试登录时,这就是我从LogCat中获得的详细信息。
12-09 22:54:05.911:V / FBUnitySDK(19876):发送给Unity OnLoginComplete({ “取消”:真})
当我试图深入了解logcat时,这些都是我得到的错误。
12-09 22:53:52.298:E / fb4a(:):VaultDeviceSetup(19890): com.facebook.http.protocol.ApiException:验证访问时出错 令牌:会话与当前存储的会话不匹配。这可能是 因为用户自会话开始以来更改了密码 由于安全原因,已创建或Facebook已更改会话。 12-09 22:53:52.298:E / fb4a(:):VaultDeviceSetup(19890):at com.facebook.http.protocol.ApiResponseChecker.b(ApiResponseChecker.java:103) 12-09 22:53:52.298:E / fb4a(:):VaultDeviceSetup(19890):at com.facebook.http.protocol.ApiResponseChecker.a(ApiResponseChecker.java:136) 12-09 22:53:52.298:E / fb4a(:):VaultDeviceSetup(19890):at com.facebook.http.protocol.StringResponseHandler.a(StringResponseHandler.java:31) 12-09 22:53:52.298:E / fb4a(:):VaultDeviceSetup(19890):at com.facebook.http.protocol.ApiResponseHandler.b(ApiResponseHandler.java:89)
此外,facebook设置无法找到我的debug.keystore,它让我感觉不到缺少debug.keystore。我已经在.android文件夹中安装了debug.keystore文件,但它仍然没有检测到它。所以我把我的keyhash直接放到这样的FacebookAndroidUtil.cs文件中。
private static string debugKeyHash="MY_KEY_HASH";
我也在我的Facebook应用设置中添加了相同的密钥哈希值。所以我不确定导致登录问题的原因。无论是密钥哈希问题还是日志中显示的访问令牌问题。我被困2天了。 :(
答案 0 :(得分:1)
为了能够使用Android登录,您需要确保在Facebook上正确填写“原生Android应用程序”的所有“基本”应用程序设置。您可以在以下位置找到这些设置。
您需要填写的设置可以在统一编辑器中找到(Facebook>编辑设置> Android Build Facebook设置)
如果你的'Debug Android Key Hash'丢失,并且有一条错误消息说'你的android调试密钥库文件丢失了!您可以通过在Eclipse中创建和构建空的Android项目来创建新项目。即使您确定该文件存在,也可能是因为您的Unity项目不在Windows安装驱动器上。
要解决此问题,您需要更改原始Facebook插件中的一些代码(我的版本是4.3.4) 在 YOUR_UNITY_PROJECT \ Assets \ Facebook \ Editor \ android \ FacebookAndroidUtil.cs 的 62
System.Environment.GetEnvironmentVariable("HOMEPATH") + @"\.android\debug.keystore" :
与
System.Environment.GetEnvironmentVariable("HOMEDRIVE") + System.Environment.GetEnvironmentVariable("HOMEPATH") + @"\.android\debug.keystore" :
还要确保Windows的 PATH 环境变量包含任何Java安装附带的“keytool”的位置。例如:
C:\ Program Files \ Java \ jre6 \ bin
如果必须更改环境变量,请务必重新启动Unity。
您现在可以使用“Android Build Facebook设置”在Facebook上填写“原生Android应用”设置。
希望这有帮助!
答案 1 :(得分:0)
替换
System.Environment.GetEnvironmentVariable("HOMEPATH") + @"\.android\debug.keystore" :
通过
System.Environment.GetEnvironmentVariable("HOMEDRIVE") + System.Environment.GetEnvironmentVariable("HOMEPATH") + @"\.android\debug.keystore" :
让它在Windows 8中适用于我