一些文档
Flask 文档 http://dormousehole.readthedocs.org/en/latest/
微信公众平台接入说明
新浪SAE部署Flask 说明
#shi-yong-web-kai-fa-kuang-jia
微信公众平台测试账号申请 http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login
一、创建新的SAE应用
创建新的SAE应用,代码管理可以选择SVN,或者Git,我选择的SVN,客户端使用TortoiseSVN,这样可以在本地修改文件后提交即可,当然也可以使用SAE的在线编辑器。然后创建一个代码版本。
二、代码修改
在应用中创建一个myapp.py的python文件,可以直接在SAE的在线编辑器中创建,也可以用SVN check到本地后,创建后提交,现在整个应用一共有config.yaml、index.wsgi、myapp.py 这3个文件,暂时需要修改的是index.wsgi和myapp.py这两个,index.wsgi是整个应用的入口,参考SAE部署Flask的说明进行修改即可。
index.wsgi
import sae from myapp import app application = sae.create_wsgi_app(app)
myapp.py
from flask import Flask, request, make_response from hashlib import sha1 app = Flask(__name__) @app.route('/') def index(): return "Hello,World!" @app.route('/check', methods=['GET', 'POST']) def check(): if request.method == 'GET': token = r'test' # 这个根据自己的设置自行修改 signature = request.args.get('signature', '') echostr = request.args.get('echostr', '') timestamp = request.args.get('timestamp', '') nonce = request.args.get('nonce', '') tmp = [timestamp, nonce, token] tmp.sort() tmp = ''.join(tmp) if signature == sha1(tmp).hexdigest(): return make_response(echostr) else: return "Access denied." if __name__ == '__main__': app.run()这段代码是根据微信公众平台接入说明写的,官方示例只有PHP的,这里是Python Flask版本的。(如果代码直接复制报错的话把注释删了再试一下)
获取请求参数的方法在Flask的文档当中可以找到。
三、配置微信公众平台
登录微信公众平台http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login 登录后的界面如图:
打开之前建好的SAE应用的代码管理界面,找到下面的链接。
先把这个链接复制到微信公众号设置的URL一栏,然后根据自己Flask程序设置的路由进行修改,我的后面要加上 /check
Token设置与程序当中的要一致。点击提交能够提示配置成功即可。这里基本的配置已经完成,剩下的部分就是不断完善程序的功能了。