无法使用fb-unity-sdk |登录我的应用程序OnLoginComplete({“cancelled:true})| API异常

时间:2013-12-09 17:50:34

标签: unity3d facebook-unity-sdk

我正在为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天了。 :(

2 个答案:

答案 0 :(得分:1)

为了能够使用Android登录,您需要确保在Facebook上正确填写“原生Android应用程序”的所有“基本”应用程序设置。您可以在以下位置找到这些设置。

  

http://developers.facebook.com/apps/YOUR_FB_APP/summary

您需要填写的设置可以在统一编辑器中找到(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中适用于我