主页> 常见问题> Flask + SAE 接入微信公众平台

Flask + SAE 接入微信公众平台

阅读: 常见问题

一些文档

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设置与程序当中的要一致。点击提交能够提示配置成功即可。这里基本的配置已经完成,剩下的部分就是不断完善程序的功能了。


【温馨提示】倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至55506560@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于本站观点。用户与作者的任何交易与本站无关,请知悉。

客服
套餐咨询,操作答疑等
在线客服