微信开发--入门(一)

最近工作上被安排看微信公众号开发,看了2天,今天有点收获。 记录下来, 下次参考。

昨天看了微信开发的文档, 文档对每个部分的接口介绍的都算比较详细, 每个参数意义, 类型,有些还有例子。 不过我始终在思考的是为什么每个接口都是去发送request,不管是我们的创新,还是取用户信息。 获取用户信息,我比较好理解,这个数据存在微信服务器,自然要发request请求过去。 可是例如创建菜单,为什么要发一串request呢?

网上看了挺多博客, 没有人解释这点, 更多的是给出例子代码(http://www.cnblogs.com/vipyuyu/p/3248627.html)。 看完他们的代码,我也还没有理解。可能是思维定势,总是觉得创建菜单应该是在微信平台有个图形界面类的,自定义创建的。

所以今天先从创建菜单开始入手,照的前人的代码敲。 前人说要网络部署好,微信服务器才能访问。我也照着这个思路, 想着用JAE搭个环境,在JAE上跑工程。(其实对于创建菜单来说,是没有必要的。)

 

再我写完代码,没有发布到线上时,我就先写了个java main函数去跑了一遍。 当我在纠结为什么前人说“在浏览器地址栏中输入自己百度云开发者中心下改应用的当前域名即可,然后关注微信公众账号看效果”,难道是在服务器配置(用于接收用户信息)中设置URL是这个线上工程,微信会自动去跑这个URL, 可是当我尝试去改这个url的时候,却因为token验证不通过。 这个时候我多看了几遍配置URL的说明, 我理解的是这个URL就是为了验证而已, 你需要在相应这个URL的action里判断该请求是否从微信发出, 怎么判断呢, token就是一把钥匙了。 在我们定义的这个action中,token已知,然后通过从request中获取时间,随机数等再排序加密, 和request中传过来的signature对比,看是否一致,如果一致则验证通过。

 

如此一来,这个配置的URL仅仅是用来验证的,那和我们的创建菜单的url应该没有半毛钱关系, 那这个url,微信在什么时候跑进去呢?  正在思考的时候,我意外的发现我测试的微信公众号已经有菜单了,这时,我一下子恍然大悟。 为什么作者说要先输入自己百度云开发者中心下改应用的当前域名即可,然后关注微信,其实两者没有关联性,输入线上域名,只是为了向微信发送创建菜单的请求而已, 而我之前写的main函数,直接跑了一遍,也可以达到同样的效果, 如果用微信在线api测试,填入相应的access_token也是可以达到效果的。 简单点理解,可以认为通过这个请求,可能微信把我们的菜单格式存在数据库里,当打开微信公众号,会按照已有的菜单格式显示。

 

记录到此, 其实想想很简单的道理, 可是很奇怪,为什么当时自己就没转过弯呢! 呵呵, 真有点笨!

 

明天继续菜单的具体使用!

微信开发--入门(一)

上一篇:说一下进程和线程的区别


下一篇:微信公众平台开发者文档 生成带参数的二维码