Sanic 微信公众号开发 --- 初探

准备工做

  • 一个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的方法

微信公众号开发的答疑区

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

  1. 申请一个公众号(初学者用我的账号)
  2. Sanic若是没有用gunicorn或者nginx作代理,那么请在启动时使用80端口(缘由很简单,微信那边只认80端口)
  3. 准备好一个公网的服务器或者云服务器(我用阿里云的,开放80端口)
  4. 先写好一个get方法去返回验证token结果(代码以下)
import hashlib

def 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的基础上开发更多的功能,玩玩微信公众号的二次开发.
相关文章
相关标签/搜索