- 浏览: 912167 次
- 性别:
- 来自: 宁波
文章分类
最新评论
-
masuweng:
不错!!!!!
自定义表单的设计与实现 -
xhackertxl:
注意将jstock cvs下来后去掉原先的J2SE 1.6li ...
开源项目推荐 — 股票分析软件JStock -
luoyexiaozhu:
最近在学表单这一块,没有思路,能发给我一份学习一下吗86239 ...
WEB项目中自定义表单的设计与实现 -
volunteer521:
楼主,以下的引用类没有对应的jar包,麻烦共享以下,谢谢!im ...
通用数据抽取系统 -
baichixiaozi:
体验下,谢谢分享
原创简化Web开发的框架 - JSPTagEx
目前在51,校内,facebook开发小应用越来越热,这里我仅以xiaonei.com提供的APP Java API为例,探讨他的实现方法,简单来说就是分为2步:
- 申请个应用,得到应用的API Key和Secret两个数值
- 利用这两个数值,我们就可以使用xiaonei的Java API,以下代码用来实现获取你的个人信息和你的好友信息代码(由于邀请API已过期,所以不能使用):
package com.cxlh.servlet; import java.io.IOException; import java.util.ArrayList; import java.util.EnumSet; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.w3c.dom.Document; import com.common.utils.StrCharUtil; import com.xiaonei.api.ProfileField; import com.xiaonei.api.XiaoneiException; import com.xiaonei.api.XiaoneiRestClient; import com.xiaonei.api.schema.Friend; import com.xiaonei.api.schema.FriendsGetFriendsResponse; import com.xiaonei.api.schema.RequestsSendRequestResponse; import com.xiaonei.api.schema.UsersGetInfoResponse; import net.sf.json.JSONArray; import net.sf.json.JSONObject; /** * Servlet implementation class XN */ public class XN extends HttpServlet { private static final long serialVersionUID = 1L; public static String PARAM_XN_SIG_IN_IFRAME = "xn_sig_in_iframe"; public static String PARAM_XN_SIG_TIME = "xn_sig_time"; public static String PARAM_XN_SIG_ADDED = "xn_sig_added"; public static String PARAM_XN_SIG_USER = "xn_sig_user"; public static String PARAM_XN_SIG_SESSION_KEY = "xn_sig_session_key"; public static String PARAM_XN_SIG_API_KEY = "xn_sig_api_key"; /** * @see HttpServlet#HttpServlet() */ public XN() { super(); // TODO Auto-generated constructor stub } private List<Friend> getFriend(XiaoneiRestClient client) throws Exception{ client.friends_getFriends(); FriendsGetFriendsResponse resp = (FriendsGetFriendsResponse) client.getResponsePOJO(); List<Friend> friends = resp.getFriend(); return friends; } } private String buildUserInfo(int id) { StringBuffer sb=new StringBuffer(); sb.append("<div align=\"center\">\n"); sb.append("图片:<xn:profile-pic uid=\""); sb.append(id); sb.append("\" linked=\"true\" size=\"tiny\"/><br>\n"); sb.append("姓名:<xn:name uid=\""+id+"\" linked=\"true\" shownetwork=\"true\" />\n"); sb.append("</div>\n"); return sb.toString(); } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); response.setCharacterEncoding("utf-8"); response.setHeader("Charset", "utf-8"); response.setHeader("Cache-Control", "no-cache"); request.setCharacterEncoding("UTF-8"); JSONObject json = new JSONObject(); String cmd=StrCharUtil.formatNullStr(request.getParameter("cmd")); String callback=StrCharUtil.formatNullStr(request.getParameter("callback")); String sessionKey = request.getParameter(PARAM_XN_SIG_SESSION_KEY); XiaoneiRestClient client = new XiaoneiRestClient("你的APIKey", "你的Secret Key", sessionKey); //client.setDebug(true); try{ if("getfriends".equals(cmd)){ JSONArray jj = JSONArray.fromObject(getFriend(client)); json.put("res",jj.toString()); }else if("myinfor".equals(cmd)){ int loggedInUserId = 0; try { loggedInUserId = client.users_getLoggedInUser(); EnumSet<ProfileField> enumFields = EnumSet.of(ProfileField.NAME, ProfileField.HOMETOWN_LOCATION,ProfileField.BIRTHDAY, ProfileField.HEADURL,ProfileField.MAINURL, ProfileField.SEX,ProfileField.STAR,ProfileField.TINYURL, ProfileField.ZIDOU,ProfileField.UNIVERSITY_HISTORY, ProfileField.WORK_HISTORY); Document doc = client.users_getInfo(loggedInUserId, enumFields); json.put("xml",doc.toString()); UsersGetInfoResponse loggedUserGetInfoRes = (UsersGetInfoResponse) client.getResponsePOJO(); json.put("res",JSONArray.fromObject(loggedUserGetInfoRes.getUser())); } catch(XiaoneiException e) { e.printStackTrace(); } }else if("invite".equals(cmd)){ List<Integer> userIds = new ArrayList(); List<Friend> friends = getFriend(client); for (Friend f:friends) { userIds.add(f.getId()); } client.requests_sendRequest(userIds); request.setAttribute("uids", client.getRawResponse()); //进一步看看都成功邀请了哪些朋友 RequestsSendRequestResponse resp = (RequestsSendRequestResponse) client.getResponsePOJO(); List<Integer> uids = resp.getUid(); json.put("res",JSONArray.fromObject(uids)); } if(json!=null){ if(callback.equals("")){ //没有回调函数 response.getWriter().println(json.toString()); }else{ response.setContentType("text/javascript;charset=utf-8"); response.getWriter().println(callback+"("+json.toString()+")"); } } }catch(Exception ex){ ex.printStackTrace(); } } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub super.doGet(request, response); } }
最终效果见校内网:http://apps.xiaonei.com/testfaqee
评论
2 楼
kongshanxuelin
2009-06-26
目前该应用已过期,被我删掉了,目前已将该接口应用在我的校内应用中:http://apps.xiaonei.com/randfriend/
1 楼
saiyaren
2009-06-26
你那里有校内 API 的doc吗?
发表评论
-
自定义表单的设计与实现
2017-06-13 17:46 8182制作调查表或企业内部系统的时候,经常被一系列表单弄得焦头烂 ... -
高性能高可用的服务端研究之Req-Rep模式(附源码)
2014-03-04 10:01 5495最近在思考高可用的 ... -
也说企业应用中的公式管理功能
2011-02-14 13:41 1284在我们日常开发企业应用或互联网应用中,往往会碰到公式的高级定义 ... -
大学时光的陈年旧作:代码收集软件
2009-08-26 13:37 2026记得读大学的时候,经常喜欢收集代码,今天翻看电脑,发现大学时做 ... -
好用的复选树源码改进版
2009-07-02 15:36 3321在我们项目开发过程中,复选树是经常用碰到的,在Ext,JQ等框 ... -
Apache 2.2.x+Tomcat6集群配置备忘
2009-07-01 10:35 2883在我们部署Web应用时,不可避免大多都会涉及到集群问题,此文作 ... -
网页划词自动翻译的实现
2009-06-15 13:01 1266其中机器翻译调用的Google API,将以下代码另存为即可看 ... -
抓取百度Top500歌曲以及地址源码
2009-05-31 11:11 2955在我整理完在线听歌(http://ting.faqee.com ... -
灰色模型预测算法源码
2008-12-09 08:50 2429在我们进行Web项目开发时,经常需要预测一些离散的数据,那么灰 ... -
AS 3.0语言的魅力(12月1日更新例子)
2008-11-28 09:11 1616以前一直用Java,由于某些Web场景的开发不得不用到Flas ... -
通用各类文档读写的设计与实现
2008-11-21 15:25 1473在我们日常的项目开发中,经常碰到需要读取word等文档的需求, ... -
Web上传文件在线压缩的实现
2008-10-16 08:23 2478在我们开发网站的过程中,如果用户上传的文件过大,由于考虑到服务 ... -
在Java调用VB编写的Dll文件
2008-10-15 08:56 5711在公司里,不同的系统使用不能的语言非常正常,我曾经在一个公司就 ... -
图论—深度优先和广度优先算法源码
2008-10-06 13:21 1844最近由于项目需要,需要实现深度优先和广度优先算法,图论中的基础 ... -
即时通信XMPP协议示例程序(可与QQ,MSN等互通)
2008-09-26 11:24 9079运行环境:JDK1.4+ 第三方包:Smack(Openfir ... -
使用Substance制作漂亮的swing皮肤(附源码)
2008-09-25 09:29 6330最近项目用swing开发桌面程序,感觉本身的swing界面实在 ... -
简易基于Ext留言板源码
2008-09-19 13:15 2653以前接私活的时候给医院做个网站,搞了个基于Ext的小论坛,但后 ... -
Java加密算法汇总
2008-09-19 09:46 1680Base64: package com.cxlh.mm; p ... -
网站全文检索的实现(基于lucene 2.0)
2008-09-18 13:46 2047辛辛苦苦做好了一个网站,接下来就必须为用户提供全文检索的功能, ... -
Google API代码
2008-09-18 08:57 1561<html> <head> ...
相关推荐
java毕业设计校内网项目(源码)java毕业设计校内网项目(源码)java毕业设计校内网项目(源码)java毕业设计校内网项目(源码)java毕业设计校内网项目(源码)java毕业设计校内网项目(源码)java毕业设计校内网...
微信小程序 校内新闻大图 (源码)微信小程序 校内新闻大图 (源码)微信小程序 校内新闻大图 (源码)微信小程序 校内新闻大图 (源码)微信小程序 校内新闻大图 (源码)微信小程序 校内新闻大图 (源码)微信小程序 校内新闻...
校内网微信小程序源码.rar
仿校内网的SNS源码程序,和大家分享~~~
校内应用程序开发:.NET应用程序开发标准化 通过为你企业建立个公共应用结构框架来提高.NET应用开发效率 by Rao Chejarla (印度) 涉及技术:ADO.NET、ASP.NET 开发企业应用是个复杂过程你可以运用Microsoft .NET技术...
校内网 API Java Client 包
校内xiaonei api java client 0.8源文件,由jad反编译得到。jar文件下载地址http://code.google.com/p/xiaonei-java-api/downloads/list
vue校内网小程序源码
适合新手学习AJAX相关功能 AJAX校内数码相册 包含数据库 源码)
基于SpringBoot开发的校内信息共享平台源码+项目说明.zip CISP 全称 Campus Information Sharing Platform -- 校内信息共享平台 这是一个类似于论坛的信息发布平台 后端基于SpringBoot开发 前端使用LayUI框架 + ...
校内购物网V1.1源码asp.net**********************
商业源码-编程源码-山建大校内购物网V1.1源码.zip
校内生活小程序源码分享
基于javaweb的大学校内超市管理系统源码+数据库(95分以上大作业).zip 该项目是个人期末大作业高分项目源码,获得老师高度认可,都经过严格调试,确保可以运行!放心下载使用。 该项目资源主要针对相关专业的学生或...
本人写了一下校内网的阳光牧场的源码 基本功能实现了 是用vs2008做的
(微信小程序毕业设计)校内网小程序(源码+截图)(微信小程序毕业设计)校内网小程序(源码+截图)(微信小程序毕业设计)校内网小程序(源码+截图)(微信小程序毕业设计)校内网小程序(源码+截图)(微信小程序毕业设计)校内网小...
校内应用软件开发项目管理制度.docx校内应用软件开发项目管理制度.docx
微信小程序校内网小程序源码(源码+源码导入视频教程+源码导入文档教程)小程序精选源码亲测可用 项目功能: 招生简章 学院专业 校园风光 在线服务等
校内API开发实例,可供参考,包括了好友,发Feed,通知等
校内网小程序源码+截图