我很长一段时间以来一直在使用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版本并使用它来经常避免这些更改,而且我想知道其他人如何在他们的应用程序中处理这个?
答案 0 :(得分:0)
从您收到的错误消息中看来,您正在使用的Ads API
(版本2.4.6)已弃用。
来自this page,Ads API
是Marketing 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%准确),然后尽快做出必要的修改。