四. IOLoop定时获取access_token和jsapi_ticket
3.Redis数据库
如果有对Redis不了解的同学,可参考Redis快速入门
basecache.py
tokencache.py
4. 使用tornado的Ioloop实现定时获取access_token和 jsapi_ticket,并将获取到的access_token和 jsapi_ticket保存在Redis数据库中
wxconfig.py
wxshedule.py
run.py将定时器的启动放在主程序入口处,保证每次启动服务器时,重新启动定时器
五. 自定义菜单及点击菜单时获取openid
1. 编写菜单对应的html页面
先在template模板文件夹下制作一个html页面,用于点击自定义菜单时跳转到的网页.
编写一个页面处理类,用于接收tornado.web.RequestHandler请求
给PageHandler添加url规则
2.创建一个菜单,并给菜单添加获取授权code的URL
以下是微信公众平台官方文档给出的具体流程,详见 网页授权获取用户基本信息
我们希望在用户点击自定义菜单时,需要先获取用户的openid,以便从我们自己的后台中通过该openid获取这个用户更多的信息,比如它对应的我们后台中的uid等, 如果我们后台中没有这个用户,则需要执行绑定等操作.
因此我们需要给这个自定义菜单按钮添加一个对应的URL,点击这个菜单,跳转到这个URL,这个URL会触发获取code操作,获取到code后,通过获取授权的access_token接口,获取openid及access_token
(1) 给菜单添加url,及state映射关系
state为自定义字符串,可以用来标识是用户点击了哪一个菜单,放在一个dict字典中,当前我们制作的第一个菜单就对应/page/index映射
附:涉及到的主要程序代码如下:
wxconfig.py
wxauthorize.py 中的 WxAuthorServer类
wxmenu.py
wx_handler.py
本文来自企鹅号 - 全球大搜罗媒体
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文来自企鹅号 - 全球大搜罗媒体
如有侵权,请联系 cloudcommunity@tencent.com 删除。