检索Facebook帐户的电子邮件信息

时间:2015-08-31 09:28:24

标签: java facebook facebook-graph-api oltu

当我获得Facebook代码时,我以这种方式设置范围:

OAuthClientRequest request = OAuthClientRequest
    .authorizationProvider(OAuthProviderType.FACEBOOK)
    .setClientId(FacebookConfig.APP_ID)
    .setRedirectURI(FacebookConfig.APP_REDIRECT_URI)
    .setScope("email")
    .buildQueryMessage();

现在,在Facebook帐户的应用信息中,我可以看到提供给应用的信息包含电子邮件地址。

enter image description here

但是当我找回信息时:

OAuthClient oAuthClient = new OAuthClient(new URLConnectionClient());  
OAuthClientRequest bearerClientRequest =new OAuthBearerClientRequest("https://graph.facebook.com/me")
                                            .setAccessToken(accessToken)
                                            .buildQueryMessage();

OAuthResourceResponse resourceResponse=oAuthClient.resource(bearerClientRequest, OAuth.HttpMethod.GET, OAuthResourceResponse.class);

有关于电子邮件地址的任何信息:

{"name":"AAAAA BBBBB","id":"12345678901234567"}

出了什么问题?
感谢。

1 个答案:

答案 0 :(得分:1)

如果您使用的是Graph API v2.4,则需要指定要明确检索的每个字段。

E.g。

OAuthClientRequest bearerClientRequest =new OAuthBearerClientRequest("https://graph.facebook.com/me?fields=id,name,email")
                                            .setAccessToken(accessToken)
                                            .buildQueryMessage();