校内api教程

来源:互联网 发布:单片机应用技术c语言版 编辑:程序博客网 时间:2024/04/28 22:38
 > 前言
> 本文档将以一个例子的形式进行讲解使用校内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"?>
> <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"?>
> <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"?>
> <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"?>
> <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)
原创粉丝点击