《微哨校园开放平台轻应用接口手册.docx》由会员分享,可在线阅读,更多相关《微哨校园开放平台轻应用接口手册.docx(20页珍藏版)》请在第一文库网上搜索。
1、微哨校开放平台轻应用接口手册1 .身份校验1.1 获取凭证接口说明:1 .拥有一个微哨登陆账号,通过登陆微哨PC客户端并点击“登陆微哨开放平台”打开微哨校园开放平台,添加应用后即可获得应用的appid和appsecret2 .通过获取凭证接口获取到accessOken接口(请求方式:get)https:/校园微哨通讯服务器/cgibin/oauth2/access_token?grant_type=c1ientcredentia1s&appid=APPID&appsecret=APPSECRET;参数说明:参数是否必须说明appid是申请微哨应用时分配的APPid(通过登录微哨开放平台获取)a
2、ppsecret是申请微哨应用时分配的APPSeCret(通过登录微哨开放平台获取)grant_typeI是内容必须为c1ient_credentia1s协议说明:协议正确的JSon返回结果:(,accessJoken2YotnFZFEjr1zCsicMWpAA,expires_in:3600)其中参数如下:access_token获取到的凭证expires_time凭证到期时间错误的JSOn返回示例:MerrcodeM:40013,errmsg,inva1idappid,注:1、access_token是第三方访问微哨api资源的票据;2、accessjoken对应于公众号是全局唯一的票据,
3、重复获取将导致上次获取的accesstoken失效。3、由于微哨服务器是配置在校园内部的,因此校微哨通讯服务器、校园微哨资源服务器会因学校不同而不同,用户可以通过登录微哨开放平台获取。登陆开放平台后依次打开,“进入我的个人中心”“我的应用”“对应应用”“编辑”,显示如下界面:i日说,E开方二MG支持足三用工开友啊均门r博更露式点用芯网Rwaes:初发=甩.*.用开发手岳卜.彩SNKC匕期RJHuf1哥11碗,Htp,】9216823.18:8443IGUZWWWH二:二慰红色框中即为校园微哨通讯服务器和校园微哨资源服务器的地址。1.2UR1有效性验证开发者创建应用时,应提交处理微哨请求的UR1
4、为了确认开发者提交的UR1可用,用户提交轻应用通讯UR1后,微哨服务器将发送GET请求到填写的UR1上,并且带上四个参数:参数描述signature微哨加密签名,由tokentimestamp、nonce计算得来。timestamp时间戳nonce随机数echostr随机字符串开发者通过检验SignatUre对请求进行校验(下面有校验方式),用于确认请求来自微哨服务器。若确认此次GET请求来自微哨服务器,请原样返回echoStr参数内容,则接入生效,否则接入失败。加密/校验流程:1 .将token(轻应用通讯凭证)、timestamp、nonce三个参数进行字典序排序2 .将三个参数字符串拼接
5、成一个字符串进行Sha1加密3 .开发者获得加密后的字符串可与SignatUre对比,标识该请求来源于微哨服务器注:1 .微哨服务器与第三方服务器校验通过后保持长连接交换数据。若长时间没有数据交换,5分钟后自动断开服务器连接,重复校验过程以再次获得连接;2 .token(轻应用通讯凭证)是在登陆微哨开放平台后,创建应用时开发者自己填写的内容,必须保证代码中的token与开放平台的一致。并且限制为英文字母和阿拉伯数字,长度限制为0-32位。此后,每次应用接收用户消息的时候,微哨也都会带上这前三个参数访问开发者设置的UR1,开发者依然通过对签名的效验判断此条消息的真实性。效验方式与首次提交验证申请
6、一致(参见13)。检验signature的PHP示例代码:privatefunctionchecksignature()Ssignature$_GETsignature;Stimestamp$_GETtimestamp;$nonce$_GETnonce;$tokenTOKEN;$tmpArrarray($token,Stimestamp,$nonce);sort($tmpArr);$tmpStreimp1ode(StmpArr);$tmpStresha1($tmpStr);if($tmpStr$SignatUre)returntrue;e1sereturnfa1se;1.3消息合法性校验客户端
7、向轻应用发送消息时,微哨服务器将消息发送到填写的UR1上,并且带上三个参数:参数描述signature微哨加密签名,由tokentimestampnonce计算得来。timestamp时间戳nonce随机数开发者通过检验SignaIUre对请求进行校验(校验方式参考1.2的加密/校验流程),用于确认请求来自微哨服务器。2 .自定义菜单简介开发者获取使用凭证后,可以使用该凭证对公众账号的自定义菜单进行创建、查询和删除等操作。自定义菜单接口可实现以下类型按钮:c1ick(点击事件):用户点击CIiCk类型按钮后,微哨服务器会通过消息接口(event类型)推送点击事件给开发者,并且带上按钮中开发者填
8、写的key值,开发者可以通过自定义的key值进行消息回复。view(访问网页):用户点击VieW类型按钮后,会直接跳转到开发者指定的UrI中。2.1 设置菜单接口(请求方式:input)https:/校I园微I哨通讯服务器/1ightaDD/menu/set?aDDid=aDDid&accesstOken=ACCESSjrOKEN参数app_id应用idaccesstoken所有请求,必须带有accessOken参数,accessOken获取方式参见第1部分-身份校验菜单示例button:!(type:“C1iCk”,name:今日歌曲,key:V1001_TODAY_MUSICH,(type
9、:”VieW”,name:”微哨官网,ur:,(name:菜单,Msub_button:(type:“C1iCk,namehe11oword,key,V1001_HE11O_WOR1D,(type:“C1iCk,name:“赞一下我们”,“key:“V1OOI_GOOD”参数是否必须说明button是级菜单,数目不大于3个sub-button否二级菜单,数目不大于5个type是button的类型,必须是CIiCk或者View,为CIiCk时需要定义key值。为VieW时需要填写Ur1,name是button的标题,一级菜单标题长度不超过8个字符(4个汉字),二级菜单标题长度不超过16个字符(8
10、个汉字)。key菜单button的type为CIiCk时必须菜单key值,用于消息接口推送,不超过128字节ur1菜单button的type为VieW时必须网页链接,用户点击菜单可打开链接,不超过256字节,Ur1在PC端会在本地的默认浏览器中打开,在手机端会在微哨内置浏览器中打开。注:进行菜单设置时,应注意,该应用必须处于调试状态,应用开放后,将不能设置菜单!返回说明正确的Json返回结果:ri人11errcode:0,errmsg:ok)错误的JSon返回结果“errcode:40018,“errmsg:“inva1idbuttonnamesize,z2.2 查询菜单接口(请求方式:get
11、)https:校微哨通讯服务器/IightapHmenu/View?aDDid=aDDid&access_tOken=ACCESSTOKEN参数appid应用编号access_token所有请求,必须带有access_token参数,accessOken获取方式参见第1部分-身份校验协议返回设置的菜单内容,参考2.1.12.3 删除菜单接口(请求方式:get)https:/校园微哨通讯服务帮ZIightaDP/menu/de1ete?aDDid=aDpid&accessIoken=ACCESSTOKENappid应用编号accessjoken所有请求,必须带有accessOken参数,acce
12、ss_token获取方式参见第1部分一身份校验345 .获取用户信息接口(请求方式。get)htms:校园微哨通讯服务器/api/user/get_info?access_1oken=asydf32r3221feappid=app231&student_number=参数appid应用编号access_token所有请求,必须带有access/Oken参数,access.token获取方式参见第1部分-身份校验student_number用户学号,学号可以在接收消息时得到(消息中的fromstudentnumber字段)。获取用户信息同时支持使用消息中的fromusername获取。返回说明调
13、用成功返回用用I息:“retcode:“0,data:yzPhotO-Credentia1zz:,1sex:boy,“organization”:计算机学院/*计技本*班,StUdenJnumber:*,“name:*,“aid:*.cn,errmsg:ok,errcoe:O参数说明name姓名aid用户微哨号域名,如:*Cnorganization组织,如“外语学院/102班”sex性另J:boy:男,gir1:女photo_credentia1头像student_number彗4,收消息当微哨用户向公众账号发消息时,微哨服务器会将用户消息已XM1格式POST到开发者填写的UR1上。各消息类型的推送XM1数据包结构如下。4.1 he11o报文消息3456相关参数说明:参数描述tousername微哨轻应用ID(appid)fromusername发送方帐号(一个J1D)fromstudentnumber学工号/教工号Createtime消息创建时间(整型)msgtyp