1. 注册应用
在人人网注册应用,注册应用成功后会得到APPID、API Key、Secret。
应用申请成功后,API Key和Secret就会显示在“开放平台”à“我的应用”页面
2. 下载人人网OAuth2.0代码
人人网OAuth2.0认证代码:http://lovertest.googlecode.com/svn/trunk/RenRen4j/
(下载src目录下的代码即可)
3. 加入jar包:
JUnit4(Eclipse自带)
commons-codec.jar
commons-httpclient.jar
commons-logging-1.1.1.jar
Json-simple-1.1.jar
4. 创建项目
新建Java项目,RenrenOauth2.0代码复制到项目中,并修改代码。
1)复制RenrenOauth2.0代码到项目中;
2)修改com.carey.renren.RenRenOauth.java中APIKey、SecretKey属性,设置成自己的API Key、Secret。
5. 测试类
package com.carey.renren;
import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.util.Scanner; import java.util.TreeMap; import org.junit.Test; import com.carey.renren.RenRenHttpClient; import com.carey.renren.RenRenOAuth; import com.carey.renren.utils.RenRenHttpUtil;
/** * 人人网 Oauth2.0认证过程(Java) * * 本测试类中有四个测试方法: * 1.testGetAuthorizationCode * 2.testGetAccessToken * 3.testGetSessionKey * 4.testAPI * * 按顺序和方法注解执行上面的测试方法 * 注意:按照顺序是因为每个测试方法需要前一个方法的结果 * * @author Lupeng * @create 2011-08-01 * @modify 2011-08-05 * * E-mail: lupeng0527@163.com * QQ: 244077575 */ public class RenrenTester { /** * 1.获取Authorization Code * * 测试本方法,控制台会输出一个URL,在浏览器中进入此URL, * 会返回一个新的URL: http://graph.renren.com/oauth/login_success.html?code=*** * code的值***就是Authorization Code */ @Test public void testGetAuthorizationCode() { System.out.println("get Authorization Code......"); try { String urlStr = RenRenOAuth.AuthorizationURL + "?" + "client_id=" + RenRenOAuth.APIKey + "&" + "response_type=code" + "&" + "redirect_uri=" + RenRenOAuth.RedirectURL; System.out.println("authorization url: \n" + urlStr); } catch (Exception e) { e.printStackTrace(); } }
/** * 2.获取访问令牌 * 执行次测试方法,输入上面得到的Authorization Code,会返回一个地址, * 进入此地址会返回一个json数据,记录下此数据 */ @Test public void testGetAccessToken() { System.out.println("get Access Token......");
System.out.println("Input your Authorization code:"); Scanner in = new Scanner(System.in); String input = in.nextLine();
try { String urlStr = RenRenOAuth.OAuthURL + "?" + "client_id=" + RenRenOAuth.APIKey + "&client_secret=" + RenRenOAuth.SecretKey + "&redirect_uri=" + RenRenOAuth.RedirectURL + "&grant_type=authorization_code" + "&code=" + input; System.out.println("access url: \n" + urlStr); } catch (Exception e) { e.printStackTrace(); } }
/** * 3.获取Session Key * 输入上面json中的access token * 会得到获取Session Key的链接地址,同样会返回一个资源地址,进入此地址,会返回json数据, * 这个json数据中包含了session_key。 */ @Test public void testGetSessionKey() { System.out.println("get Session Key......"); System.out.println("Input your Access token:"); Scanner in = new Scanner(System.in); String input = in.nextLine();
try { input = URLEncoder.encode(input, "UTF-8"); } catch (UnsupportedEncodingException e1) { e1.printStackTrace(); }
try { String urlStr = RenRenOAuth.SessionURL + "?" + "oauth_token=" + input; System.out.println("session url: \n" + urlStr); } catch (Exception e) { e.printStackTrace(); } }
/** * 4.测试Renren Java API * 执行此测试方法时会需要上面得到的session_key, * 返回的json就是你要获取的人人网的数据。 */ @Test public void testAPI() { System.out.println("Input your Session Token:"); String input = null; Scanner in = new Scanner(System.in); input = in.nextLine();
TreeMap params.put("session_key", input); // params.put("method", "friends.getFriends"); // 获取当前用户好友 params.put("method", "users.getInfo"); // 获取当前用户信息 params.put("uids", "242508128"); // 当前用户ID
// 测试更多方法请查看Renren API
String content = sendPostRestRequest(params, "JSON", RenRenOAuth.ApiUrl); if (content.indexOf("error_code") >= 0) { //error } System.out.println(content); }
public static String sendPostRestRequest(TreeMap String format, String url) { RenRenHttpUtil.prepareParams(params, format); String content = RenRenHttpClient.doPost(url, params); return content; } }
|
6. 示例代码地址:http://d.download.csdn.net/down/3497062/lupeng0527
QQ:244077575