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

标签 java facebook facebook-graph-api

我已经使用 facebook graph API 很长时间了。我经常遇到的一个问题是每 3 个月出现一次 API 版本升级异常,如下所示:

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 版本并使用它来避免频繁发生这些更改,而且我想知道其他人如何在他们的应用程序中处理这个问题?

最佳答案

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

来自this page 广告 API营销 API 的一部分。 尽管Marketing APIversioning documentation指出旧 API 在 90 天后已弃用,以后您无法调用该版本,只能从 Facebook Platform Changelog 调用该版本。 (Marketing API 的表格)您可以看到截止日期并不那么严格:如果您开始使用 2.7 版,则在 2017 年 4 月之前都可以使用,而 2.8 版甚至更晚(目前未指定)。

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

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

关于java - 如何动态处理facebook API版本升级异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40213557/

相关文章:

facebook - 如何自动播放嵌入的 Facebook 视频?

node.js - MEAN 堆栈 - 如何仅允许登录(电子邮件/密码和 Facebook 登录)用户访问 API

php - 您将如何使用 facebook php sdk 执行 `debug_token` 调用?

python - 如何使用 Python-Social-auth 和 Django 检索 Facebook 好友的信息

php - 如何使用图形 API 获取 Facebook 用户的电子邮件地址?

java - 我们可以在测试服务本身的同时模拟服务中的方法吗?

java - 为什么我的 ArrayList 包含添加到列表中的最后一项的 N 个副本?

java - 在 Java 中使用 Scala - 如何将 Java 对象转换为 Option<Object>

java - JTextField,即使应用程序关闭也保存文本

android - 仍然需要 Facebook Activity 吗?