美文网首页生活不易 我用python
sae flask微信公众号开发

sae flask微信公众号开发

作者: 长物记 | 来源:发表于2016-07-08 14:40 被阅读524次

    sae 部分

    创建应用

    我们选择 python 空应用



    代码部署选git


    然后在本地添加git仓库


    sae应用可以有10个版本

    python

    本地建立vendor文件夹,需要安装flask等第三方包

     pip install -t vendor flask
    

    建立一个index.wsgi文件

      import sae
      sae.add_vendor_dir('vendor')
      from wxtest import app #flask
      application = sae.create_wsgi_app(app)
    

    然后建个wxtest.py

     # -*- coding:utf8 -*-
     import hashlib
     import time
     from flask import Flask, request, make_response, g,render_template
     import xml.etree.ElementTree as ET
    
     app = Flask(__name__)
     app.debug = True
    #微信验证
    @app.route('/wx', methods=['GET','POST'])
    def wechat_auth():
        if request.method == 'GET':
            token = '输入自己喜欢的'
            query = request.args
            signature = query.get('signature','')
            timestamp = query.get('timestamp', '')
            nonce = query.get('nonce', '')
            echostr = query.get('echostr', '')
            s = [timestamp, nonce, token]
            s.sort()
            s = ''.join(s)
            if (hashlib.sha1(s).hexdigest() == signature):
                response = make_response(echostr)
                response.headers['content-type'] = 'text'#这步很关键,不然会出错
                return response
     else:  ###这里就是处理用户发来的消息了
        rec = request.stream.read()
        xml_rec = ET.fromstring(rec)
        toUser= xml_rec.find('ToUserName').text
        fromUser = xml_rec.find('FromUserName').text
        reply = "<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[%s]]></Content><FuncFlag>0</FuncFlag></xml>"
        reply_news_temp_head = "<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[news]]></MsgType><ArticleCount>%s</ArticleCount><Articles>"
        reply_news_temp_body = "<item><Title><![CDATA[%s]]></Title><Description><![CDATA[%s]]></Description><PicUrl><![CDATA[%s]]></PicUrl><Url><![CDATA[%s]]></Url></item>"
        reply_news_temp_foot = "</Articles></xml>"
        msgType = xml_rec.find('MsgType').text
        if msgType == 'text':   #根据msgType来处理信息(text,image...)
              pass
    

    接下去,就可以自己发挥想象了,比如写天气啊什么的了


    然后我们就可以部署到sae上去

    微信公众平台


    开发->基本配置
    url填入刚刚我们建立的sae,wxtest1111.applinzi.com/wx
    token 填的和 wxtest.py里的一致

    这样就全部结束了

    相关文章

      网友评论

        本文标题:sae flask微信公众号开发

        本文链接:https://www.haomeiwen.com/subject/ogdtjttx.html