我是利用 Facebook Graph API 的 Wordpress 插件的作者。最近,新插件用户的一些 Graph 调用失败(只有新用户受到影响)。经过一番挖掘,我相信我在这里偶然发现了原因:https ://developers.facebook.com/docs/apps/versions
特别是“我的应用程序可以调用比当前版本更旧的版本吗?”部分。状态:
应用可以调用创建应用时可用的最新 API 版本
换句话说,即使我的 Graph 调用指定了明确的版本(即https://graph.facebook.com/v2.0/me),对于新创建的应用程序,Facebook 也会简单地忽略“v2.0”并调用进入2.1。事实上,FQL 查询如下:
https://graph.facebook.com/v2.0/fql?q=(myquery)&access_token=(mytoken)
产量:
"error": {
"message": "(#12) fql is deprecated for versions v2.1 and higher",
"type": "OAuthException",
"code": 12
所以这就引出了我的第一个问题:我在这里遗漏了什么吗?对我来说,这种行为似乎让版本控制变得毫无用处。无论我的调用是否指定 v2.0,Facebook 都只会调用该应用程序创建时存在的最新版本。因此,Facebook 为支持旧 api 版本提供的两年时间窗口(请参阅https://developers.facebook.com/docs/apps/upgrading)什么也没做,因为我总是需要在最新版本发布时支持它(或者使用新创建的应用程序的新用户将被破坏)。正确的?
第二个问题(假设以上是正确的):我如何查询 Facebook 以获取当前应用程序正在使用(或者更确切地说,可以使用)的版本?由于明确指定 v2.0 并不意味着它实际上会使用 v2.0,因此找出它是否使用了意外的版本至少可以帮助预防可能的错误 - 即,包含在用户错误报告中的有价值的信息。我希望这些信息必须以某种方式在 access_token 中,但我已经搜索了高低,无法弄清楚如何问,“这个令牌适用于什么 API 版本”(或者,“什么 API 版本可以做到这一点应用程序支持,”或类似的)?