`
yuliang1014
  • 浏览: 3309 次
  • 性别: Icon_minigender_1
  • 来自: 南通
最近访客 更多访客>>
社区版块
存档分类
最新评论

整合oauth访问facebook的java开发

阅读更多
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获取你想要的东西了,包括发微博,修改个人信息等操作。
1
1
分享到:
评论
3 楼 black0419 2012-08-16  
我也求一个完整的例子,尤其是现在在做这个东西,要求是能做到全程不接触用户信息,用户信息和oauth要完全分开。如果能提点两句就再感谢不过了。jiangguang0419@gmail.com,感谢大神。
2 楼 javaloverZY 2012-07-06  
您好,你还有完整的例子么??287834625@qq.com
1 楼 marsface 2012-05-31  
请问有完整的验证例子么?还望赐教:likeyouzou@163.com,谢谢

相关推荐

    Shiro集成OAuth2

    Apache Shiro是一个强大的Java安全框架,它提供了身份验证、授权、会话管理和加密等功能,而OAuth2则是一种开放标准,用于授权第三方应用访问用户资源。将Shiro与OAuth2集成,可以实现更灵活的安全控制,特别是在...

    facebook-java-api-2.1.1-bin.zip

    开发人员可以利用这个API创建桌面应用、服务器端应用、移动应用,甚至是网页应用,与Facebook的社交功能进行深度整合。 在"facebook-java-api-2.1.1-bin.zip"压缩包中,主要包括了以下内容: 1. **库文件**:包含...

    基于Java的实例开发源码-Facebook API 的Java 封装请求处理组件 RestFB.zip

    在Java开发中,与Facebook API进行交互时,通常需要一个方便、高效的库来处理API调用。RestFB(Restful Facebook)就是这样一款开源库,它为Java开发者提供了简洁的API,用于与Facebook Graph API和Marketing API...

    facebook_java_client.rar_ Facebook-Chat_FacebookRestClient _face

    总之,这个压缩包为Java开发者提供了一个实践Facebook API的起点,通过学习和使用其中的代码,开发者可以深入理解如何在Java应用中整合Facebook的功能,如聊天和数据交互。同时,也可以借此机会提升自己的网络编程、...

    spring-facebook-oauth2:具有Spring Boot的Facebook oauth2

    《Spring Boot整合Facebook OAuth2深度解析》 在现代Web开发中,社交登录已经成为了一种常见的用户认证方式。Spring Boot作为Java领域最受欢迎的微服务框架,提供了丰富的集成工具,其中包括对OAuth2协议的支持。本...

    基于Java的OAuth 实现框架 Agorava.zip

    总的来说,Agorava是一个强大的工具,对于希望在Java应用中整合社交网络功能的开发者来说,它极大地简化了OAuth授权和API调用的复杂性。通过使用Agorava,开发人员可以更专注于业务逻辑,而不是底层的授权细节。

    含有oauth2认证的新浪微博SDK

    OAuth2的主要目的是为用户提供一种简单的方式来授权应用访问他们存储在其他服务上的数据,如微博、Facebook或Google等。 在OAuth2中,主要有四个角色: 1. **资源所有者(Resource Owner)**:比如用户,拥有需要被...

    基于Java的源码-OAuth 实现框架 Agorava.zip

    Agorava是一个开源的Java库,它为社交网络服务提供了OAuth认证和API访问的实现。这个框架使得Java开发者能够轻松地在自己的应用中集成各种社交网络平台,如Facebook、Twitter等,而无需深入理解OAuth的具体细节。...

    基于Java的Facebook API 的Java 封装请求处理组件 RestFB.zip

    - 它支持Facebook的OAuth认证机制,允许安全地获取和刷新访问令牌。 - 该库提供了丰富的数据类型映射,将JSON响应转换为Java对象,反之亦然。 2. **关键特性** - **易于使用**:RestFB的API设计清晰,提供了简单...

    基于Java的实例源码-OAuth 实现框架 Agorava.zip

    总的来说,Agorava是一个强大且灵活的Java OAuth实现框架,它为开发者提供了一种统一的方式来处理多个社交网络的集成,极大地简化了开发过程。通过深入理解并运用Agorava,Java开发者能够轻松地构建出与社交网络深度...

    基于spring security + oauth2 + jwt ,可优雅集成第三方登录.zip

    本项目以"基于spring security + oauth2 + jwt,可优雅集成第三方登录"为主题,旨在提供一个能够无缝整合第三方登录系统的解决方案。 Spring Security是一个强大的安全框架,它为Java和Java EE应用程序提供了全面的...

    shiro-oauth2开源代码

    Apache Shiro是一个强大的Java安全框架,它为应用程序提供了身份验证、授权和会话...在实际应用中,还需要考虑如何将这些组件与后端数据库、前端UI以及第三方OAuth2服务提供商(如Google、Facebook等)进行有效集成。

    FaceBook.zip

    Facebook提供了SDK(Software Development Kit),使得开发者能够轻松地在他们的应用中整合Facebook的功能。SDK通常包括了登录系统、用户数据访问、发布状态更新、事件邀请等API。开发者需要遵循Facebook的开发政策...

    spring-oauth2-login

    14. **Scope**:OAuth2的scope定义了应用可以访问的资源范围,例如只读访问或写入访问。 15. **State Parameter**:为了防止CSRF(跨站请求伪造)攻击,OAuth2通常包含一个state参数,它是随机生成的,用于验证请求...

    spring-social-facebook-1.1.1.RELEASE.zip

    《Spring社交框架与LinkedIn API整合详解》 在现代Web开发中,社交网络的集成已经成为一个不可或缺的部分。Spring框架,作为Java领域广泛使用的轻量级框架,提供了强大的支持来帮助开发者轻松地实现这一功能。本文...

    AndroidFacebook客户端.rar

    在Android平台上,Facebook客户端的开发是一项常见的任务,它涉及到Android应用设计、Facebook SDK集成以及Java编程语言的应用。这个"AndroidFacebook客户端.rar"压缩包提供了一个完整的Android应用源码,可以帮助...

    shiro-example.zip

    OAuth2的核心是授权流程,它允许用户授权第三方应用访问其在服务提供者(如Google或Facebook)上的数据,而无需分享其用户名和密码。主要角色包括资源所有者(User)、客户端(Client)和授权服务器(Authorization ...

    google-code-oauth:从Google Code导入

    这可能是一个使用Java语言实现的工具或框架,用于处理OAuth(开放授权)协议,使得用户能够安全地授权第三方应用访问他们的数据,而无需分享他们的密码。 OAuth是一个开放标准,广泛应用于各种Web服务,如Google、...

    fb_open_platform

    2. **OAuth 2.0**:Facebook使用OAuth 2.0进行授权,确保应用程序安全地访问用户的Facebook数据。开发者需要引导用户授权应用,获取访问令牌,然后在后续请求中使用该令牌。 3. **Social Plugins**:如“Like”按钮...

    pax-url-commons-2.4.4.zip

    总结来说,Spring Social Facebook为Java开发者提供了一个强大的工具,使他们能够轻松地将应用与Facebook平台整合。而PAX URL Commons作为底层的支持库,确保了网络通信的顺畅和高效。这两个组件结合在一起,为开发...

Global site tag (gtag.js) - Google Analytics