您的位置:首页 > 编程语言 > Java开发

Java认证人人开放平台

2011-08-05 13:43 204 查看
1.
注册应用

在人人网注册应用,注册应用成功后会得到APP
ID
API KeySecret

应用申请成功后,API KeySecret就会显示在“开放平台”à“我的应用”页面

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项目,Renren
Oauth2.0代码复制到项目中,并修改代码。

1)复制Renren
Oauth2.0代码到项目中;

2)修改com.carey.renren.RenRenOauth.java中APIKeySecretKey属性,设置成自己的API KeySecret

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<String, String> params = new
TreeMap<String, String>();

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, String> params,

String format, String url) {

RenRenHttpUtil.prepareParams(params,
format);

String content = RenRenHttpClient.doPost(url,
params);

return content;

}

}

6.
示例代码地址:

邮箱:lupeng0527@163.com

Q
Q:244077575
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: