gpt4 book ai didi

spring - 为什么 Spring Social facebook -2.0.3 使用已弃用的图 api 版本 2.5(已弃用)

转载 作者:行者123 更新时间:2023-12-02 10:19:13 25 4
gpt4 key购买 nike

我们在生产环境中使用 spring-social-facebook-2.0.3 最新的 jar。

2018 年 4 月,graph api v2.5 即将关闭。但 spring-social-facebook-2.0.3 最新的 jar 仍在内部使用这个已弃用的图形 API。

任何人都有任何知识,
Spring 团队会在下个月(即 2018 年 4 月)之前发布新版本的 spring-social-facebook 吗?

最佳答案

针对那些想要更改 2.0.3 版本中使用的 API 版本的人的解决方案,Facebook API 升级工具表示这不会影响他们的应用程序:

public class FacebookCustomApiVersionConnectionFactory extends OAuth2ConnectionFactory<Facebook> {

public FacebookCustomApiVersionConnectionFactory(String apiVersion, String appId, String appSecret) {
super("facebook", new FacebookCustomApiVersionServiceProvider(apiVersion, appId, appSecret, null), new FacebookAdapter());
}
}


/**
* Facebook ServiceProvider implementation that allows to change Facebook API version.
*/
public class FacebookCustomApiVersionServiceProvider extends AbstractOAuth2ServiceProvider<Facebook> {

private final String appNamespace;

private final String apiVersion;

/**
* Creates a FacebookServiceProvider for the given API version, application ID, secret, and namespace.
*
* @param apiVersion Facebook API version
* @param appId The application's App ID as assigned by Facebook
* @param appSecret The application's App Secret as assigned by Facebook
* @param appNamespace The application's App Namespace as configured with Facebook. Enables use of Open Graph operations.
*/
public FacebookCustomApiVersionServiceProvider(String apiVersion, String appId, String appSecret, String appNamespace) {
super(getOAuth2Template(apiVersion, "https://graph.facebook.com/v" + apiVersion + "/", appId, appSecret));
this.apiVersion = apiVersion;
this.appNamespace = appNamespace;
}

private static OAuth2Template getOAuth2Template(String apiVersion, String graphApiUrl, String appId, String appSecret) {
OAuth2Template oAuth2Template = new OAuth2Template(appId, appSecret,
"https://www.facebook.com/v" + apiVersion + "/dialog/oauth",
graphApiUrl + "oauth/access_token");
oAuth2Template.setUseParametersForClientAuthentication(true);
return oAuth2Template;
}

public Facebook getApi(String accessToken) {
FacebookTemplate facebook = new FacebookTemplate(accessToken, appNamespace);
facebook.setApiVersion(apiVersion);
return facebook;
}
}

Spring 社交配置

@Configuration
@EnableSocial
public class SocialConfiguration implements SocialConfigurer {

@Override
public void addConnectionFactories(ConnectionFactoryConfigurer cfConfig, Environment env) {
cfConfig.addConnectionFactory(new FacebookCustomApiVersionConnectionFactory("2.7", "appId","appSecret");

}
...
}

关于spring - 为什么 Spring Social facebook -2.0.3 使用已弃用的图 api 版本 2.5(已弃用),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49357589/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com