OAUTH相关的三个URL:
Request Token URL: 获取未授权的Request Token服务地址;
User Authorization URL: 获取用户授权的Request Token服务地址;
Access Token URL: 用授权的Request Token换取Access Token的服务地址;
OAUTH请求流程:
A. 使用者(第三方软件)向OAUTH服务提供商请求未授权的Request Token。向Request Token URL发起请求。
B. OAUTH服务提供商同意使用者的请求,并向其颁发未经用户授权的oauth_token与对应的oauth_token_secret,并返回给使用者。
C. 使用者向OAUTH服务提供商请求用户授权的Request Token。向User Authorization URL发起请求,请求带上上步拿到的未授权的token与其密钥。
D. OAUTH服务提供商将引导用户授权。该过程可能会提示用户,你想将哪些受保护的资源授权给该应用。此步可能会返回授权的Request Token也可能不返回。如Yahoo OAUTH就不会返回任何信息给使用者。
E. Request Token 授权后,使用者将向Access Token URL发起请求,将上步授权的Request Token换取成Access Token。这个比第一步A多了一个参数就是Request Token。
F. OAUTH服务提供商同意使用者的请求,并向其颁发Access Token与对应的密钥,并返回给使用者。
G. 使用者以后就可以使用上步返回的Access Token访问用户授权的资源。
code:
1、获取request_token
代码1.
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String loginRedirectURL = FacebookOAuthUtil.getLoginRedirectURL();
response.sendRedirect(loginRedirectURL);
}
代码2.
public static String getLoginRedirectURL() {
return "https://graph.facebook.com/oauth/authorize?client_id="
+ client_id + "&display=page&redirect_uri="
+ redirect_uri + "&scope=" + StringUtil.delimitObjectsToString(",", perms);
}
2、获取accessToken
代码3.
String code = request.getParameter("code");
Proxy proxy = null;
String authURL = FacebookOAuthUtil.getAuthURL(code);
URL url = new URL(authURL);
// then parsing the response to get accesstoken info
String result = readURL(url, proxy);
代码4
public static String getAuthURL(String authCode) {
return "https://graph.facebook.com/oauth/access_token?client_id="
+ client_id + "&redirect_uri="
+ redirect_uri + "&client_secret=" + secret + "&code=" + authCode;
}
代码5.
private String readURL(URL url, Proxy proxy) throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
InputStream is = null;
if (null == proxy) {
is = url.openConnection().getInputStream();
} else {
is = url.openConnection(proxy).getInputStream();
}
int r;
while ((r = is.read()) != -1) {
baos.write(r);
}
return new String(baos.toByteArray());
}
}
从result的结果中可以解析出你所需要的accessToken,这样就可以根据accessToken获取你想要的东西了,包括发微博,修改个人信息等操作。
分享到:
相关推荐
Apache Shiro是一个强大的Java安全框架,它提供了身份验证、授权、会话管理和加密等功能,而OAuth2则是一种开放标准,用于授权第三方应用访问用户资源。将Shiro与OAuth2集成,可以实现更灵活的安全控制,特别是在...
开发人员可以利用这个API创建桌面应用、服务器端应用、移动应用,甚至是网页应用,与Facebook的社交功能进行深度整合。 在"facebook-java-api-2.1.1-bin.zip"压缩包中,主要包括了以下内容: 1. **库文件**:包含...
在Java开发中,与Facebook API进行交互时,通常需要一个方便、高效的库来处理API调用。RestFB(Restful Facebook)就是这样一款开源库,它为Java开发者提供了简洁的API,用于与Facebook Graph API和Marketing API...
总之,这个压缩包为Java开发者提供了一个实践Facebook API的起点,通过学习和使用其中的代码,开发者可以深入理解如何在Java应用中整合Facebook的功能,如聊天和数据交互。同时,也可以借此机会提升自己的网络编程、...
《Spring Boot整合Facebook OAuth2深度解析》 在现代Web开发中,社交登录已经成为了一种常见的用户认证方式。Spring Boot作为Java领域最受欢迎的微服务框架,提供了丰富的集成工具,其中包括对OAuth2协议的支持。本...
总的来说,Agorava是一个强大的工具,对于希望在Java应用中整合社交网络功能的开发者来说,它极大地简化了OAuth授权和API调用的复杂性。通过使用Agorava,开发人员可以更专注于业务逻辑,而不是底层的授权细节。
OAuth2的主要目的是为用户提供一种简单的方式来授权应用访问他们存储在其他服务上的数据,如微博、Facebook或Google等。 在OAuth2中,主要有四个角色: 1. **资源所有者(Resource Owner)**:比如用户,拥有需要被...
Agorava是一个开源的Java库,它为社交网络服务提供了OAuth认证和API访问的实现。这个框架使得Java开发者能够轻松地在自己的应用中集成各种社交网络平台,如Facebook、Twitter等,而无需深入理解OAuth的具体细节。...
- 它支持Facebook的OAuth认证机制,允许安全地获取和刷新访问令牌。 - 该库提供了丰富的数据类型映射,将JSON响应转换为Java对象,反之亦然。 2. **关键特性** - **易于使用**:RestFB的API设计清晰,提供了简单...
总的来说,Agorava是一个强大且灵活的Java OAuth实现框架,它为开发者提供了一种统一的方式来处理多个社交网络的集成,极大地简化了开发过程。通过深入理解并运用Agorava,Java开发者能够轻松地构建出与社交网络深度...
本项目以"基于spring security + oauth2 + jwt,可优雅集成第三方登录"为主题,旨在提供一个能够无缝整合第三方登录系统的解决方案。 Spring Security是一个强大的安全框架,它为Java和Java EE应用程序提供了全面的...
Apache Shiro是一个强大的Java安全框架,它为应用程序提供了身份验证、授权和会话...在实际应用中,还需要考虑如何将这些组件与后端数据库、前端UI以及第三方OAuth2服务提供商(如Google、Facebook等)进行有效集成。
Facebook提供了SDK(Software Development Kit),使得开发者能够轻松地在他们的应用中整合Facebook的功能。SDK通常包括了登录系统、用户数据访问、发布状态更新、事件邀请等API。开发者需要遵循Facebook的开发政策...
14. **Scope**:OAuth2的scope定义了应用可以访问的资源范围,例如只读访问或写入访问。 15. **State Parameter**:为了防止CSRF(跨站请求伪造)攻击,OAuth2通常包含一个state参数,它是随机生成的,用于验证请求...
《Spring社交框架与LinkedIn API整合详解》 在现代Web开发中,社交网络的集成已经成为一个不可或缺的部分。Spring框架,作为Java领域广泛使用的轻量级框架,提供了强大的支持来帮助开发者轻松地实现这一功能。本文...
在Android平台上,Facebook客户端的开发是一项常见的任务,它涉及到Android应用设计、Facebook SDK集成以及Java编程语言的应用。这个"AndroidFacebook客户端.rar"压缩包提供了一个完整的Android应用源码,可以帮助...
OAuth2的核心是授权流程,它允许用户授权第三方应用访问其在服务提供者(如Google或Facebook)上的数据,而无需分享其用户名和密码。主要角色包括资源所有者(User)、客户端(Client)和授权服务器(Authorization ...
这可能是一个使用Java语言实现的工具或框架,用于处理OAuth(开放授权)协议,使得用户能够安全地授权第三方应用访问他们的数据,而无需分享他们的密码。 OAuth是一个开放标准,广泛应用于各种Web服务,如Google、...
2. **OAuth 2.0**:Facebook使用OAuth 2.0进行授权,确保应用程序安全地访问用户的Facebook数据。开发者需要引导用户授权应用,获取访问令牌,然后在后续请求中使用该令牌。 3. **Social Plugins**:如“Like”按钮...
总结来说,Spring Social Facebook为Java开发者提供了一个强大的工具,使他们能够轻松地将应用与Facebook平台整合。而PAX URL Commons作为底层的支持库,确保了网络通信的顺畅和高效。这两个组件结合在一起,为开发...