哪个版本的 spring-social-facebook 适合哪个 Facebook Graph API 版本?

Which version of spring-social-facebook fits to which Facebook Graph API version?

我怎样才能知道哪个版本的 spring-social-facebook 使用哪个版本的 Facebook Graph API?

是否有机会在 spring-social-facebook 中配置 API 版本?

我在问这个,因为目前 (31.10.2016) spring-social-facebook 的最新版本与实际的 facebook API 不兼容。抛出异常:“(#12) bio 字段已弃用 v2.8 及更高版本”。

目前我只是在开发——但我不确定如何在发布版本中避免这种错误。我如何确保 facebook API 中的更改不会破坏我的应用程序?

为了知道 Facebook 的 Graph API 版本是由 spring-social-facebook 版本实现的,您可以在 spring 网站上查看官方公告:即 2.0.0.RELEASE implements v2.3 of Facebook’s Graph API, 2.0.3.RELEASE 实现 v2.5,等等。

在 spring-social-facebook 的 v2.0.3.RELEASE 中引入了方法 FacebookTemplate.setApiVersion(String apiVersion): you have the possibility to set the Facebook’s Graph API version in order to use the same one configured on your facebook app. In detail, when the getBaseGraphApiUrl() method is called the url is dinamically built with the api version provided by the setApiVersion method ("https://graph.facebook.com/v" + apiVersion + "/").

不幸的是,虽然没有人禁止您提供比 spring-social-facebook 版本实现的目标版本更高的 Facebook Graph API 版本,但您不能保证一切正常(即,您无法通过 setApiVersion 方法将 api 版本设置为 2.8 来解决 bio 字段问题)那么这不是解决方案。

为了回答你的最后一个问题,我建议你实施 解决方法,等待下一个 spring 公告并使用下一个 spring-social-facebook 版本与您的 facebook 应用程序的 api 版本完全兼容(我想是 v2.8),因此您将能够毫无错误地使用所有 api(即 facebook.userOperations().getUserProfile())。 此外,您的 facebook 应用程序仍将使用 Facebook 的 Graph API 的 v2.8(即使将发布新版本的 Facebook 的 Graph API),然后 spring-social-facebook 发布您将使用的(例如在生产环境中)将继续与它完全兼容。