博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
豆瓣搜索—微信公共平台接入(wechatpy)
阅读量:5132 次
发布时间:2019-06-13

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

上篇文章介绍了如何对接微信公共平台,但是里面的校验代码是我们自己实现的。但是目前我们有了更好的选择----wechatpy。微信(WeChat) 公众平台第三方 Python SDK,实现了普通公众平台和企业号公众平台的解析消息、生成回复和主动调用等 API。详情请看http://wechatpy.readthedocs.org/en/latest/里面的介绍。

wechatpy里面已经封装好了校验模块,直接调用check_signature就可以完成校验工作,修改后的代码如下:

#!/bin/env python# -*- coding: utf-8 -*- import hashlib, urllib, urllib2, re, time, jsonimport xml.etree.ElementTree as ETfrom flask import Flask, request, render_templatefrom config import APP_SECRET_KEYfrom lib.wechatpy import parse_message, create_replyfrom lib.wechatpy.utils import check_signaturefrom lib.wechatpy.exceptions import InvalidSignatureExceptionapp = Flask(__name__)app.debug = Trueapp.secret_key = APP_SECRET_KEYTOKEN = 'douban_book'	#注意要与微信公众帐号平台上填写一致@app.route('/')def home():    return render_template('index.html')#公众号消息服务器网址接入验证#需要在公众帐号管理台手动提交, 验证后方可接收微信服务器的消息推送@app.route('/weixin', methods=['GET', 'POST'])def weixin():    signature = request.args.get('signature', '')    timestamp = request.args.get('timestamp', '')    nonce = request.args.get('nonce', '')    echo_str = request.args.get('echostr', '')    try:        check_signature(TOKEN, signature, timestamp, nonce)    except InvalidSignatureException:        abort(403)    if request.method == 'GET':        return echo_str    else:        msg = parse_message(request.data)        if msg.type == 'text':            reply = create_reply(msg.content, msg)        else:            reply = create_reply('Sorry, can not handle this for now', msg)        return reply.render()if __name__ == '__main__':    app.run()

转载于:https://www.cnblogs.com/herryly/p/4517844.html

你可能感兴趣的文章
如何理解HTML结构的语义化
查看>>
Intellij IDEA(eclipse设置)常用快捷键
查看>>
learning express step(五)
查看>>
推荐2013年最新的10款jquery插件
查看>>
推荐十款来自极客标签的超棒前端特效[第十一期]
查看>>
51 nod 1624 取余最长路 思路:前缀和 + STL(set)二分查找
查看>>
c# linq <未完>
查看>>
模型选择评估方法
查看>>
Beta 冲刺(4/7)
查看>>
Spring 配置相关
查看>>
深入理解Java:注解(Annotation)基本概念
查看>>
NAT基本原理
查看>>
Java Content Repository API 简介 转自(https://www.ibm.com/developerworks/cn/java/j-jcr/)
查看>>
visio二次开发——图纸解析
查看>>
Activity之间的跳转:
查看>>
iTunes Connect 开发者上手经验(转)
查看>>
vertical-align你为什么不生效
查看>>
request.getReader()的怪异事件
查看>>
C++ 实践总结
查看>>
composer 国内镜像配置
查看>>