0

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

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

怎么了?
谢谢。

4

1 回答 1

1

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

例如

OAuthClientRequest bearerClientRequest =new OAuthBearerClientRequest("https://graph.facebook.com/me?fields=id,name,email")
                                            .setAccessToken(accessToken)
                                            .buildQueryMessage();
于 2015-08-31T09:32:20.617 回答