为初次接触开发微信公众号自定义创建菜单做一个思路整合
每次新接触一个技术或者面临一个新需求的时候,对于咱们这些程序猿来说最重要的不是如何实现代码,而是有一个明确且可行的思路。
现在我将自己的开发思路整合起来,然后小伙伴们可以参考这个思路去做代码的开发,至于代码,网上多得很,稍后我也会给一个地址,可以供代码开发的参考
步骤:
1.去微信公众平台申请一个个人订阅号,申请地址:https://mp.weixin.qq.com
2.在申请成功后登陆进去的主页面下有个开发,如图:
3.点击开发者工具进入以下页面
点击公众平台测试账号进入
这里的appid和appsecret很重要,在程序中需要用,下面的配置也顺便说一下,url你可以根据ngrok工具将自己本地的项目映射到外网上,然后通过生成的外网地址可以在浏览器上访问你的项目,但是这里的url需要配置到你具体项目中用来与用户点击菜单做一些图文推送交互的servlet的路径,你目前可以不配,但是有个概念。下面的token可以自己随便写,但是还是要和后台中的程序保持一致。这里你也先不用管
接下来呢,当这些做好之后就要进入编码阶段了。如何开始,很多demo是在后台封装一个menu对象,然后在后台直接运行main方法去测试。当然,这样也可以,从前台直接传json字符串更方便。这个json字符串怎么写,微信开发文档中自定义菜单中有,例如:
{ "button": [ { "name": "扫码", "sub_button": [ { "type": "scancode_waitmsg", "name": "扫码带提示", "key": "rselfmenu_0_0", "sub_button": [ ] }, { "type": "scancode_push", "name": "扫码推事件", "key": "rselfmenu_0_1", "sub_button": [ ] } ] }, { "name": "发图", "sub_button": [ { "type": "pic_sysphoto", "name": "系统拍照发图", "key": "rselfmenu_1_0", "sub_button": [ ] }, { "type": "pic_photo_or_album", "name": "拍照或者相册发图", "key": "rselfmenu_1_1", "sub_button": [ ] }, { "type": "pic_weixin", "name": "微信相册发图", "key": "rselfmenu_1_2", "sub_button": [ ] } ] }, { "name": "发送位置", "type": "location_select", "key": "rselfmenu_2_0" }, { "type": "media_id", "name": "图片", "media_id": "MEDIA_ID1" }, { "type": "view_limited", "name": "图文消息", "media_id": "MEDIA_ID2" } ] }
{ "button": [ { "name": "扫码", "sub_button": [ { "type": "scancode_waitmsg", "name": "扫码带提示", "key": "rselfmenu_0_0", "sub_button": [ ] }, { "type": "scancode_push", "name": "扫码推事件", "key": "rselfmenu_0_1", "sub_button": [ ] } ] }, { "name": "发图", "sub_button": [ { "type": "pic_sysphoto", "name": "系统拍照发图", "key": "rselfmenu_1_0", "sub_button": [ ] }, { "type": "pic_photo_or_album", "name": "拍照或者相册发图", "key": "rselfmenu_1_1", "sub_button": [ ] }, { "type": "pic_weixin", "name": "微信相册发图", "key": "rselfmenu_1_2", "sub_button": [ ] } ] }, { "name": "发送位置", "type": "location_select", "key": "rselfmenu_2_0" }, { "type": "media_id", "name": "图片", "media_id": "MEDIA_ID1" }, { "type": "view_limited", "name": "图文消息", "media_id": "MEDIA_ID2" } ] }
为了读者和我接下来给demo更好的结合,咱还是用menu对象吧。但是在实际项目中还是传json更好维护。
下面的demo中有代码详解,我介绍开头他可以帮你解决代码。实在不行可以私信我,我发送现成的web测试小项目给你们
demo:http://blog.****.net/lanbuff/article/details/52450617