Python+Tornado开发微信公众号(二)

四. 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

本文来自企鹅号 - 全球大搜罗媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Android随笔

ADB常用命令

791
来自专栏流柯技术学院

Linux下的SVN服务器搭建

>svnadmin create /var/svn/svnrepos/liuke   (xxxx为自定义版本库名称,可根据实际情况填写)

994
来自专栏IT可乐

Linux系列教程(九)——Linux常用命令之网络和关机重启命令

  前一篇博客我们讲解了Linux压缩和解压缩命令,使用的最多的是tar命令,因为现在很多源码包都是.tar.gz的格式,通过 tar -zcvf 能完成解压。...

1769
来自专栏性能与架构

快速模拟 Rest API

在前后端开发过程中,通常会通过 web api 进行沟通,Rest 风格和 JSON结构是常用的,例如前端要获取文章列表,需要通过 GET /post 来取得数...

2844
来自专栏醉梦轩

flyme中关闭系统的权限管理

1043
来自专栏晓晨的专栏

使用 pm2 守护你的 .NET Core 应用程序

守护进程,英文名:“daemon",也有守护神的意思。守护进程是一个在后台运行并且不受任何终端控制的进程,不会随着会话结束而退出。诸如 mysql、apache...

452
来自专栏Python

linux每日命令(2):cd命令

说明:进入系统根目录,上面命令执行完后拿ls命令看一下,当前目录已经到系统根目录了

713
来自专栏前端架构与工程

Kaazing Gateway简单使用

Kaazing GateWay是一种提供跨平台跨浏览器WebSocket支持的网关,由Java编写,介绍一下Kaazing GateWay的安装配置和简单使用,...

1955
来自专栏linux运维学习

linux学习第五篇:系统目录结构,ls命令,文件类型以及alias命令

系统目录结构 Ls查看根目录 ? 大多数常用的命令都存在于目录   /usr/bin     /usr/sbin/      /bin/    /sbin/  ...

18811
来自专栏北京马哥教育

基础拾遗--【转】df与du不一致情况分析

df 显示的已使用磁盘占用率比du 统计出来的结果要大很多。原因,主要是由于两者计算结果的方式不同。 一、实验情况 1、创建并删除文件 创建文件前的磁盘容量情况...

1987

扫码关注云+社区