微信公众号+Flask+新浪SAE 配置

原理:在微信公众号后台,调用flask写的服务。


新浪SAE中,申请云应用SAE,python,标准环境,代码管理:SVN()。

代码管理—创建版本,我创建的是版本号为1的版本,所以链接为:http://1.cdedunews.applinzi.com,右侧有编辑代码,点开,里面有两个文件:config.yaml,index.wsgi.

 

新浪SAE的参考:http://www.sinacloud.com/doc/sae/python/index.html

 

同时,微信公众平台—开发—基本配置:URL:http://1.cdedunews.applinzi.com,Token(前后一致就可以了):cdedunews,EncodingAESKey(我用随机生成的):asxTH0ixv0aBsoCLCfdqfNkmWDipJqsBSms9grKVcyP。消息加密方式,因为是学习,所以明文即可。

【每个文件开始最好加上:# encoding=utf-8 注释可用中文】

在index.wsgi中的代码:

importsae
from myappimport app
application = sae.create_wsgi_app(app)

index.wsgi是程序入口,也就是主程序调用myapp.py.

 

 

myapp.py代码:

fromflask importFlask,request, make_response
from hashlibimport sha1
app = Flask(__name__)


@
app.route('/')
def hello_world():
   
return 'Hello World!'


@app.route('/微信'methods=['GET','POST'])
def check():
   
if request.method=='GET':
        token =
r'cdedunews'       #这里的cdedunews就是微信里的token
       
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 "Accessdenied."

if __name__ =='__main__':
    app.run()

配置成功(http://debug.fangbei.org/用微信调试器进行token验证成功,而且可以使用相应的主页获得相应信息),只要这里过了,后面的功能实现,其实就是pythonXML算法了。

[而且现在如果输入:http://1.cdedunews.applinzi.com/ 会看到flask的欢迎界面:Hello World]

 

参考资料

http://m.blog.csdn.net/article/details?id=50609223 
http://m.blog.csdn.net/article/details?id=50724403 
http://mp.weixin.qq.com/wiki/home/index.html 
http://blog.csdn.net/changqing1234/article/details/49490943 

http://www.cnblogs.com/txw1958/p/wechat-tutorial.html 

猜你喜欢

转载自blog.csdn.net/limaning/article/details/53732766