博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Sanic 微信公众号开发 --- 初探
阅读量:6996 次
发布时间:2019-06-27

本文共 1615 字,大约阅读时间需要 5 分钟。

准备工作

  • 一个linux系统或者一个mac电脑(因为Sanic不兼容Windows)
  • 一个服务器(云服务器就可以了,如果是在内网的很麻烦,而且不推荐那么折腾)
  • Python3.5以上(之前版本都不支持)
  • 一个公众号(个人或者企业都可以)

项目环境

  • Ubuntu 17.10 (建议用16.01或者14.04的,因为太新了gcc和g++安装部分要往下降级比较麻烦)
  • Python 3.5.5 (用了3.5最新的版本)
  • 编译器Pycharm最新版本

项目结构

sanic_wx_project/|-- controller/|   |-- __init__.py|   |-- wx_controller.py||-- utils/|   |-- __init__.py|   |-- reply_center.py|   |-- validate_wx_get.py||-- README|-- requirements.txt|-- wx_backend.py复制代码
  • controller -- 蓝图的实现方法
  • utils -- reply_center是回复中心, validate_wx_get是返回微信那边的GET请求,在初次校验token的时候需要使用
  • wx_backend -- 启动Sanic的方法

微信公众号开发的答疑区

大致申请公众号流程以及开发前的准备:

  1. 申请一个公众号(初学者用个人帐号)
  2. Sanic如果没有用gunicorn或者nginx做代理,那么请在启动时使用80端口(原因很简单,微信那边只认80端口)
  3. 准备好一个公网的服务器或者云服务器(我用阿里云的,开放80端口)
  4. 先写好一个get方法去返回验证token结果(代码如下)
import hashlibdef validate(request):    """    校验token    :param request: 请求    :return: str    """    # 这里改写你在微信公众平台里输入的token    token = 'token'    # 获取输入参数    data = request.args    signature = data.get('signature', '')    timestamp = data.get('timestamp', '')    nonce = data.get('nonce', '')    echostr = data.get('echostr', '')    # 字典排序    list_1 = [token, timestamp, nonce]    list_1.sort()    s = list_1[0] + list_1[1] + list_1[2]    # sha1加密算法    code = hashlib.sha1(s.encode('utf-8')).hexdigest()    # 如果是来自微信的请求,则回复echostr    if code == signature:        return echostr    else:        return ""复制代码
  1. 公众号管理界面验证成功后点启用就ok了.接下来就是开发的过程了.
  2. 具体开发有什么权限的请研读接口权限(需要在登录平台后才能看)、
  3. 以上弄完就可以认真开发调试了.

小谈

  • 我一直关注Sanic很久了,最近才有时间静下来认真看Sanic(如果之前有学习过Flask或者Flask-restful就很容易上手).
  • Django的同学就可以要花点时间去适应下Sanic的写法
  • Sanic大概花了一天的时间去看文档,然后开发这个demo只用了一个下午(demo代码就不多, so easy)
  • 之后自己会在demo的基础上开发更多的功能,玩玩微信公众号的二次开发.

转载地址:http://egbvl.baihongyu.com/

你可能感兴趣的文章
SQL Server认证培训与考试
查看>>
Oracle EBS-SQL (SYS-11):查询系统已打的PATCH.sql
查看>>
转 PV操作简单理解
查看>>
微服务开发中的数据架构设计
查看>>
[转] Linux下查看用户列表
查看>>
VC++异常捕获??
查看>>
【Foreign】无聊的计算姬 [Lucas][BSGS]
查看>>
Js获取元素样式值(getComputedStyle&currentStyle)兼容性解决方案
查看>>
地理杂志精选照片
查看>>
备忘-Sql server Timeout expired 超时时间已到. 达到了最大池大小 错误及Max Pool Size设置...
查看>>
java es 骤合操作
查看>>
迭代器 Iterator
查看>>
Android-studio 连接真机 调试weex项目
查看>>
container_of()宏
查看>>
Blossoms
查看>>
LeetCode – Refresh – Fraction to Recurring Decimal
查看>>
Spring Boot 配置优先级顺序
查看>>
buildroot管理uboot+kernel+rootfs
查看>>
用P3P header解决IE下iframe跨域访问时候session丢失的问题
查看>>
Ant入门
查看>>