当请求其他权限时,Facebook Unity SDK浏览器会锁定

时间:2014-04-19 23:32:51

标签: facebook facebook-unity-sdk

我正在使用Unity制作Facebook画布游戏,除了奇怪的Facebook行为外,事情一直在发展。我正在尝试遵循Facebook关于何时以及获得授权的权限的准则。

当我第一次启动我的应用程序时,我只是获得了基本权限(basic_info),因为我真的只需要用户首先登录。

FB.Login("basic_info", loginCallback);

在Unity编辑器中根据需要正常工作,提供令牌。但是,当我的应用程序达到我要发布OG故事的程度时,如果它们不存在,我需要首先获得publish_actions权限。根据我在搜索中找到的所有内容,通过SDK for Unity获得额外权限的唯一方法就是再次调用FB.Login,提供权限范围。所以在适当的时候,如果我的权限中还没有publish_actions,我就打电话给:

FB.Login("publish_actions", loginPermCallback);

在Unity编辑器中,这对我来说是不可测试的,因为编辑器登录需要一个令牌,如果有办法用测试用户令牌指定这个特定权限,我还没有找到它。所以我通过画布托管游戏测试这个。当调用它时,我会得到一个对话框,表明我的应用程序希望允许发布到时间轴。当我点击确定批准它时,我的游戏重新出现,但一切都被锁定了。几乎就像一个无限循环被击中,但我已经做了彻底的检查,这只是被调用一次。事实上它确实为我的测试用户设置了权限,而不是在Facebook应用程序设置中检查它们。

如果我在应用程序启动时同时获得了这两项权限,那么事情似乎工作正常,但根据文档不会这样做。

此外,此对话框是否可以获得全屏显示的附加权限?窗口本身不是全屏,但它背后是白色背景,全屏。我不确定这是否与OnHideUnity回调有关。

如有必要,我会提供其他信息。我正在使用Unity 4.3.4f,Facebook SDK 5.0.4

1 个答案:

答案 0 :(得分:0)

经过广泛的试验和错误后,我发现了导致我的情况发生锁定的原因。在我需要获取其他权限的场景中,我在Unity中使用了ClothRenderer。出于某种原因,权限对话框根本不喜欢ClothRenderer运行。我通过在调用FB.Login之前关闭ClothRenderer,然后在登录回调中将其重新打开来解决了我的问题。