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

Retrieve email information of facebook account

当我拿到facebook代码的时候,我是这样设置scope的:

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

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

但是当我检索信息时:

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"}

怎么了?
谢谢

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

例如

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