向 scribe 请求 facebook v2.2 api 授权

request facebook v2.2 api with scribe for authorization

facebook api v1.0 将于 2015 年 4 月 30 日到期: https://developers.facebook.com/docs/apps/changelog

我们正在使用 scribe(当前版本 1.3.6)通过 facebook 进行登录。我们需要更新到 Facebook api v2.2,或高于 v1.0

scribe 支持连接到 facebook api v2.2 吗?

如果我查看发送给用户的生成的 url, v1.0版本: https://www.facebook.com/dialog/oauth?client_id=12345678901&redirect_uri=http%3A%2F%2Flocalhost%3A8080%2Findex.facebookoauthconnect%3Aauthorize&scope=email%2Cuser_birthday

如果我理解正确,我通过包含 /v2.2/ 连接到 v2.2 api,如下所示 v2.2 版本(?): ...facebook.com/v2.2/对话/...

对吗?至少这适用于我们的场景。

Facebook 的 URL 定义在: org.scribe.builder.api.FacebookApi 并且不会在代码的后面进行操作,因此我认为抄写员仅支持 v1.0 facebook api。对吗?

我们自己将 /v2.2/ 插入 url 是否足以连接到 v2.2 api?

亲切的问候 大卫

注意:我从未使用过 Scribe,因为我有自己的内部编写库

Facebook 上的 OAuth 授权过程没有改变,只是 API。因此,您的请求路径不会在 /{object}/ 上(如果使用 Facebook v1.0),而是附加在 /v2.2/{object}/.

Scribe 库仅允许您更轻松地对服务提供商进行 OAuth。它 不会 link 任何特定于 API 的服务提供商,因此您可以随意更改 API 请求路径。

您需要参考最新的Graph API reference doc

示例:

// getting user profile
OAuthService service = new ServiceBuilder()
                                  .provider(FacebookApi.class)
                                  .apiKey(YOUR_API_KEY)
                                  .apiSecret(YOUR_API_SECRET)
                                  .build();
OAuthService service = facebookServiceProvider.getService();
OAuthRequest oauthRequest = new OAuthRequest(Verb.GET, "https://graph.facebook.com/v2.2/me"); //See how this link is appended with v2.2 path!!!
service.signRequest(accessToken, oauthRequest);
Response oauthResponse = oauthRequest.send();
System.out.println(oauthResponse.getBody()); 

我建议学习upgrading changes from Graph v2.1 to Graph v2.2。您不应该担心身份验证过程,而应该担心图形 URL.