我最近在Facebook SDK for Unity(v6.0.0)中发现了一个奇怪的行为,如果您的应用ID是在2014年4月30日之前创建的,它将使用旧的Graph API(1.0)查询FB。
据我所知,基于有关此行为的有限文档,SDK将在2015年4月30日之后自动强制执行新的2.0 API。如果假设API响应格式没有改变,这一切都很好。但是,我注意到我/权限列表查询中有一个更改,根据提供的APP ID提供了非常不同的响应:
这是一种非常奇怪和令人困惑的行为。这意味着,即使我将Facebook SDK升级到最新版本,它也会一直通过Graph API 1.0进行查询?在2015年4月30日截止日期之前,我应该如何升级我的游戏以支持新的2.0 API?
就像现在一样,如果我按照2.0文档中的说明修改我的代码来解析响应数据,它将永远不会适用于我已经发布的2014年4月30日之前的应用程序,并且只会破坏它。
所以问题是,有没有办法强制SDK使用2.0 API?恕我直言,这个基于APP ID的整个汽车API版本选择感觉迟钝和毫无意义。 Facebook应该强制执行它,以便新SDK始终使用新的API。我们的开发人员将知道如何自行修复它并为我们的用户发布新的更新。
答案 0 :(得分:0)
您可以通过将版本作为图API调用的一部分传递来强制版本高于应用版本,例如https://graph.facebook.com/的 2.0 强> / ME /权限
您可以使用Graph Explorer工具对其进行测试:https://developers.facebook.com/tools/explorer 在下拉列表中尝试'unversioned'并将me / permissions作为优势 - 对于1.0应用程序,您将获得旧格式,对于2.x应用程序,您将获得新格式。现在将版本下拉列表切换为2.x并重复。两者都应该是2.x格式。