-
平台简介
- 开发者协议
- 开放平台与应用开发者协议
- 人人网connect合作许可协议
-
审核标准
-
入门指南
-
核心文档
-
资源与工具
-
常见问题
-
工具箱
在上一章完成用户授权之后,即可以调用Rest API接口,获取到用户的姓名、头像等个人信息。
目录 |
[编辑] 下载Java SDK
为了获取用户信息,我们需要调用Rest API来完成,但是人人网提供的Java SDK已经将调用细节进行了封装。
下面,我们到人人网开源项目去下载Java SDK:可以直接下载jar包,也可以下载源文件压缩包或在官方代码库使用Hg获取最新的代码。
注意:Java SDK依赖一个称为json-simple的jar包,用于处理Rest API返回的JSON格式的响应文本。如果直接用jar包的话,可以到Java_SDK_jar包下载去下载renren-api-java-sdk.jar和json-simple-1.1.jar并放置到/WEB-INF/lib目录下,并在工程编译时把这个jar包放到build path中。
[编辑] 初始化Java SDK
Java SDK在使用前需要初始化一些重要参数,如API Key以及Secret等。这个初始化只需要执行一次,所以我们放在ServletContextListener中去执行。
创建一个ServletContextListener(类名:com.yourdomain.webcanvas.ApiInitListener),内如如下:
package com.yourdomain.webcanvas; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import com.renren.api.client.RenrenApiConfig; import com.yourdomain.webcanvas.config.AppConfig; public class ApiInitListener implements ServletContextListener{ @Override public void contextDestroyed(ServletContextEvent arg0) { //Nothing to do } @Override public void contextInitialized(ServletContextEvent arg0) { RenrenApiConfig.renrenApiKey = AppConfig.API_KEY; RenrenApiConfig.renrenApiSecret = AppConfig.APP_SECRET; } }
在这个listener中,我们初始化了API Key和Secret值。
下面把这个listenner配置到web.xml中。在web.xml中添加如下配置:
<listener> <listener-class>com.yourdomain.webcanvas.ApiInitListener</listener-class> </listener>
[编辑] 调用users.getInfo接口
修改com.yourdomain.webcanvas.HomeServlet类,修改后内如如下:
package com.yourdomain.webcanvas; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.json.simple.JSONArray; import org.json.simple.JSONObject; import com.renren.api.client.RenrenApiClient; import com.yourdomain.webcanvas.config.AppConfig; @SuppressWarnings("serial") public class HomeServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, java.io.IOException { String sessionKey = request.getParameter("xn_sig_session_key"); String renrenUserId = request.getParameter("xn_sig_user"); if (sessionKey != null && renrenUserId != null) { RenrenApiClient apiClient = new RenrenApiClient(sessionKey); JSONArray userInfo = apiClient.getUserService().getInfo(renrenUserId, "name,headurl"); if (userInfo != null && userInfo.size() > 0) { JSONObject currentUser = (JSONObject) userInfo.get(0); if (currentUser != null) { String userName = (String) currentUser.get("name"); String userHead = (String) currentUser.get("headurl"); request.setAttribute("userName", userName); request.setAttribute("userHead", userHead); } } } request.setAttribute("appId", AppConfig.APP_ID); RequestDispatcher welcomeDispatcher = request.getRequestDispatcher("/views/home.jsp"); welcomeDispatcher.forward(request, response); } }
上述代码首先从xn_sig参数中获取了Session Key和用户ID,然后创建了一个RenrenApiClient对象用于调用Rest API的用户信息接口(具体接口是users.getInfo接口)。接口调用的的返回结果是一个JSON数组,从里面的恰当的节点中拿到了用户姓名和头像地址。
[编辑] 将用户信息在页面展示
修改/views/home.jsp,增加对于用户姓名和头像的展示。修改后/views/home.jsp的内如如下所示:
<%@ page contentType="text/html;charset=UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Renren Webcanvas Demo -- Home</title> </head> <body> <img src="${requestScope.userHead}"/> <p>你好,${requestScope.userName}</p> </body> </html>
现在重启web server,访问 http://apps.renren.com/yourapp/home ,结果如下:
[编辑] 相关链接
- 下一步:在你的Web应用中显示好友列表
- 返回上一级