我主要测试了自定义菜单管理 和 用户管理两个模块的接口,微信里面调用接口主要是传递json数据,因此要选择一个解析json的jar包,我用的是fastjson。
另外,调用接口需要用到ACCESS_TOKEN,基础授权,这个可以根据自己公众号的AppID和AppSecret来获取,可以用接口在线调试,或者自己通过接口调用获得
接口调用获得access_token:
http get请求 https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
将里面的APPID 和 APPSECRET 换成自己的就可以得到了
返回的数据是json数据 {"access_token":"ACCESS_TOKEN","expires_in":7200}
这个ACCESS_TOKEN 只有两个小时有效期,接口有200次的调用机会,所以不能每来一个请求就调用接口得到ACCESS_TOKEN,要自己保存。
微信开发者文档里面还有个提示 注意调用所有微信接口时均需使用https协议。
但是我是直接发http请求也可以成功,发https请求复杂一点。
现在开始测试自定义菜单管理接口
先看上面的说明
1、自定义菜单最多包括3个一级菜单,每个一级菜单最多包含5个二级菜单。
2、一级菜单最多4个汉字,二级菜单最多7个汉字,多出来的部分将会以“...”代替。
3、创建自定义菜单后,由于微信客户端缓存,需要24小时微信客户端才会展现出来。测试时可以尝试取消关注公众账号后再次关注,则可以看到创建后的效果。
里面的button 我只用到2种类型 view 和click。
view类型是根据里面填的url进行跳转,click类型是触发自定义菜单点击事件
调用创建接口 传的是json数据,看格式
{ "button":[ { "type":"click", "name":"今日歌曲", "key":"V1001_TODAY_MUSIC" }, { "name":"菜单", "sub_button":[ { "type":"view", "name":"搜索", "url":"http://www.soso.com/" }, { "type":"view", "name":"视频", "url":"http://v.qq.com/" }, { "type":"click", "name":"赞一下我们", "key":"V1001_GOOD" }] }] }
可以根据它的格式进行封装,方便创建菜单。用之前的httpuUtil工具类,发送post请求,将自定义菜单的json数据传送上去就可以了,
微信服务器也会返回一个json字符串 成功时返回 {"errcode":0,"errmsg":"ok"}
失败时errcode不为0,
好像微信的所有接口都可以这样进行调用,只需要有个httpUtil工具类,和自己会解析json字符串就可以了,
其余的接口都类似
麻烦的是网页授权,这个比较麻烦下次总结下网页授权和摇一摇周边