> 前言> 本文档将以一个例子的形式进行讲解使用校内API的流程。> 下文的介绍中假定你是一个ABC网站的拥有者,网站地址是www.abc.com。> 文中 Application 表示一个应用,你的网站将被视为一个Application。> Ok,我们开始吧。> 约定> 1、 你的Application必须要在xiaonei上事先进行申请登记,登记成功后Xiaonei为ABC提供一个API_KEY,作为一个唯一标识,字符串的形式。> 2、 用户必须先到xiaonei进行登录。> 3、 用户需要接受这个Application提供的相关服务,否则用户在ABC站点上查看相关校内网的数据信息s。> 4、 ABC提供一个callback_url给xiaonei,此链接用于xiaonei验证用户成功后,回跳到ABC站点的url。> 流程> 1:登录xiaonei的URL> http://login.xiaonei.com/L.do?api_key=YOUR_API_KEY&v=1.0>> ABC的网页应该提供登录到xiaonei的入口,入口链接为上面的。用户点此链接后,xiaonei的登录验证服务会判断用户是否已经登录到xiaonei。> URL参数表> api_key(必须的) xiaonei提供给ABC站点的> v(必须的) 目前固定写 1.0>>> 2:xiaonei回调ABC的callback_url> Xiaonei验证用户已经登录校内,且用户已经接受了ABC站点提供的服务,则回调到ABC提供的callback_url地址。并将认证通过的加密串传给此链接。形式如下:> http://www.abc.com/callback_url? auth_token=>> 上面参数auth_token的值是xiaonei生成并传入的。> ABC需要接收此auth_token参数,并根据此auth_token进一步向xiaonei发送请求得到session_key。> URL参数表> auth_token(必须的) >> 3:得到校内用户的session_key> http://api.xiaonei.com/restserver.do?method= xiaonei.auth.getSession &> api_key=YOUR_API_KEY&v=1.0&auth_token=>> URL参数表> Method 固定值:xiaonei.auth.getSession> api_key(必须的) xiaonei提供给ABC> v(必须的) 目前固定写 1.0> auth_token 上一步获得的>> 成功返回值> 成功后返回一段XML文本,例如XML文本:> <?xml version="1.0" encoding="UTF-8"?gt;> <auth_getSession_response>> <session_key>5f34e11bfb97c762e439e6a5-8055</session_key>> <uid>8055</uid>> <expires>1173309298</expires>> </auth_getSession_response>>> ABC方面需要解析此XML文本,提取出session_key串,并将session_key存储起来以备后面使用;<uid>节点表示用户id。> 失败返回值> 失败后返回一段XML文本,例如XML文本:> <?xml version="1.0" encoding="UTF-8"?gt;> <error_response>> <error_code>5</error_code>> <error_msg>未经认证的IP地址(ip: 20.1.2.3)</error_msg>> </error_response>> <error_code>节点表示错误代码,可参照下面"错误代码对照表"。>>>>> 4:从xiaonei取得一个用户信息的URL> http://api.xiaonei.com/restserver.do?method= xiaonei.users.getInfo &> api_key=YOUR_API_KEY&v=1.0&session_key=&uids=&format=> 提交方式> 使用POST提交。> URL参数表> method(必须的) 固定值:xiaonei.users.getInfo> api_key(必须的) xiaonei提供> v(必须的) 目前固定值:1.0> session_key(必须的) 取自上一步生成的串> uids 一个用户id,如:8055> format(可选的) Response的格式。请指定为XML(缺省值),>> 成功返回值> 成功后返回一段XML文本,例如XML文本:> <?xml version="1.0" encoding="UTF-8"?gt;> <users_getInfo_response>> <user>> <uid>8055</uid>> <name>刘德华</name>> <sex>1</sex>> <birthday>1961-09-27</birthday>> <hometown_location>> <country>中国</country>> <province>黑龙江</province>> <city>哈尔滨</city>> </hometown_location>> </user>> </users_getInfo_response>>> ABC需要解析此XML文本,提取出所需信息。<uid>节点表示用户id,<name>节点表示用户名字。> <sex>节点表示性别,值1表示男性;值0表示女性。> <birthday>表示出生时间,格式为:yyyy-mm-dd,ABC方面需要自行格式化日期显示格式。> <hometown_location>节点表示家乡所在地,<country>节点表示国家,<province>节点表示省或州,<city>表示城市。> 失败返回值> 失败后返回一段XML文本,例如XML文本:> <?xml version="1.0" encoding="UTF-8"?gt;> <error_response>> <error_code>5</error_code>> <error_msg>未经认证的IP地址(ip: 20.1.2.3)</error_msg>> </error_response>> <error_code>节点表示错误代码,可参照下面"错误代码对照表"。>>> 错误代码对照表> 错误号 错误描述 适用的方法> 11 一个未知的错误发生 (all)> 12 服务临时不可用 (all)> 13 未知的方法 > 14 应用已达到设定的请求上限 (all)> 15 请求来自未经授权的IP地址 (all)> 16 此方法必须运行在api.xiaonei.com (all)> 100 无效参数 (all)> 101 提交的api_key不属于任何已知的应用 (all)
转载于:https://www.cnblogs.com/zack/archive/2009/04/13/1434507.html
相关资源:各显卡算力对照表!