Tec*_*ain 5 java jsp servlets oauth facebook-oauth
嗨,我正在使用java进行网络项目我希望网站的用户使用他们的Facebook帐户登录.我试过Facebook开发官方
但没有得到解决方案
我可以推荐你OAuth库Scribe,或者它改进的fork 订阅.如果您对使用示例感兴趣,请查看我的项目OAuh JEE登录.
首先,您需要获取OauthService实例:
OAuthService service = new ServiceBuilder()
.provider(FacebookApi.class)
.apiKey("key").apiSecret("secret")
.scope("email").callback("https://hostname/endpoint/")
.build();
Run Code Online (Sandbox Code Playgroud)
然后,您需要将用户重定向到Facebook页面,在那里他将授予您的应用程序/登录访问权限:
String redirectUrl = service.getAuthorizationUrl(NULL_TOKEN);
response.sendRedirect(redirectUrl);
Run Code Online (Sandbox Code Playgroud)
然后Facebook会调用你的回调uri,你需要获取参数code并获取访问令牌:
String verifierValue = request.getParameter("code");
if (verifierValue == null) {
log.warn("Callback did not receive code parameter!");
return false;
}
Verifier verifier = new Verifier(verifierValue);
Token accessToken = service.getAccessToken(NULL_TOKEN, verifier);
Run Code Online (Sandbox Code Playgroud)
最后是时候使用此令牌向Facebook询问用户详细信息:
OAuthRequest resourceRequest = new OAuthRequest(Verb.GET, RESOURCE_URL);
service.signRequest(accessToken, resourceRequest);
Response resourceResponse = resourceRequest.send();
JsonObject jsonObject = JsonObject.readFrom(resourceResponse.getBody());
JsonValue value = jsonObject.get("username");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12863 次 |
| 最近记录: |