当我获得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"}
出了什么问题?
感谢。
答案 0 :(得分:1)
如果您使用的是Graph API v2.4,则需要指定要明确检索的每个字段。
E.g。
OAuthClientRequest bearerClientRequest =new OAuthBearerClientRequest("https://graph.facebook.com/me?fields=id,name,email")
.setAccessToken(accessToken)
.buildQueryMessage();