如何动态处理facebook API版本升级异常

时间:2016-10-24 08:11:29

标签: java facebook facebook-graph-api

我很长一段时间以来一直在使用facebook图谱API。我经常遇到的一个问题是API版本升级异常,如下所示每3个月:

message - (#2635) You are calling a deprecated version of the Ads API. Please update to the latest version: v2.7. code - 2635 Relevant information for error recovery can be found on the Facebook Developers Document:
        https://developers.facebook.com/docs/graph-api/using-graph-api/#errors

FacebookException{statusCode=400, errorType='OAuthException', errorMessage='(#2635) You are calling a deprecated ver sion of the Ads API. Please update to the latest version: v2.7.', errorCode=2635, errorSubcode=-1, version=2.4.6}

由于这个原因,我需要每次更新属性文件中的版本,我正在阅读我的java代码并需要在生产中部署它。虽然我正在使用的API没有变化,但我每次都被迫做这个改变。

我现在有3个修复方法,以避免一次又一次的部署:

1)从数据库中读取API版本,并在版本发生变化时将更新脚本提供给生产。

2)轮询属性文件以进行任何修改,如果修改则再次阅读。

3)脏修复:捕获异常,从异常字符串中解析版本并动态更新URL。

但我认为还有其他更好的方法来动态获取最新的FB API版本并使用它来经常避免这些更改,而且我想知道其他人如何在他们的应用程序中处理这个?

2 个答案:

答案 0 :(得分:0)

从您收到的错误消息中看来,您正在使用的Ads API(版本2.4.6)已弃用。

来自this pageAds APIMarketing API的一部分。 虽然Marketing API的{​​{3}}表示旧API在90天后已弃用,而您之后无法通过versioning documentation(Marketing API表)调用该版本,但您可以看到截止日期为没有那么严格:如果你开始使用2.7版本,你可以在2017年4月之前使用2.8版本(此时未指定)。

因此,您似乎无法避免在Marketing API中进行版本化调用,并且您必须定期更新代码,但使用最新版本,您不必更新大约一年。

免责声明:我只是猜测我没有Facebook API的经验。

答案 1 :(得分:0)

根本不可能在不改变代码的情况下动态更新Facebook API版本,这就是为什么它被称为:" Facebook突破变化"。有时模型会更改,有时会更改URL签名,但几乎总会有一些内容需要更改您在代码中使用或处理API响应的方式。

Facebook会不断更新他们的api,你需要彻底检查他们提供的文件(你应该警惕它通常不是100%准确),然后尽快做出必要的修改。