查询Facebook是否正在使用/可以使用的是什么版本的Graph API

时间:2014-08-12 04:57:55

标签: facebook facebook-graph-api facebook-graph-api-v2.0

我是利用Facebook Graph API的Wordpress插件的作者。最近,一些Graph调用失败了新的插件用户(只有新用户受到影响)。经过一番挖掘,我相信我在这里偶然发现了原因:https://developers.facebook.com/docs/apps/versions

特别是,部分"我的应用可以拨打比当前版本更旧的版本吗?"陈述:

  

应用可以调用创建应用时最新的API版本

换句话说,即使我的图形调用指定了一个显式版本(即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版本是什么,"或类似的?)

2 个答案:

答案 0 :(得分:7)

您必须区分API版本和App创建。正如您所说的那样,Facebook在宣布继任者的两年后就支持旧版本的Graph API。

https://developers.facebook.com/docs/apps/versions#howlong州的文档

  

在后续版本发布之日起两年后,版本将不再可用。

  

因此,如果API版本2.0于2014年4月30日发布,API版本2.1将于2014年8月7日发布,那么v2.0将于2016年8月7日,即v2.1发布两年后到期。

如果您在没有指定版本信息的情况下调用Graph API,会发生以下情况:

  

无版本调用将默认为最旧的API版本

意味着您的应用程序是在2014年8月1日创建的,您将能够调用v2.0,而不是v1.0。如果您的应用程序是在2014年4月1日创建的,那么您将能够调用v1.0(但直到2015年4月30日弃用v1.0)。如果您的应用程序是在2014年8月7日之后创建的,则无论您指定的版本是什么,您都只能调用v2.1。

概述于

  

应用程序可以调用创建应用程序时最新的API版本,以及创建应用程序后启动的任何较新的,未弃用的版本。

因此,换句话说,它总是与您的Facebook应用程序创建日期更相关,因为这将决定应用程序将能够使用的Graph API版本

要确定应用的创建日期,您可以使用

/{app_id}?fields=id,creation_time

端点,它将在创建相应的应用程序时为您提供Unix时间戳。请参阅https://developers.facebook.com/docs/graph-api/reference/v2.1/app/#readfields然后您可以使用PHP或JavaScript将Unix时间戳转换为日期。

答案 1 :(得分:2)

请注意,检查应用年龄的功能略有改变。现在是:

  

/ {APP_ID}?字段= ID,CREATED_TIME

它现在还提供实际时间戳

  

{    “id”:“12341234123412341234fake”,   “created_time”:“2011-11-30T21:00:56 + 0000”   }

手动测试此方法的一种简单方法是通过此处的图谱API资源管理器:https://developers.facebook.com/tools/explorer/

请务必选择合适的应用和应用令牌。