需要安装 webpy 和 python-lxml
- git clonegit://github.com/webpy/webpy.git
- ln -s `pwd`/webpy/web
- cd /root/webpy
- sudo python setup.py install
- sudo apt-get install python-lxml
下载微信模板
- git clone https://github.com/mcdona1d/Wechat-Python-Template.git
index.python
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- import os
- import web
- import time
- import hashlib
- from lxml import etree
- urls = (
- '/weixin','WeixinInterface'
- )
- def _check_hash(data):
- #sha1加密算法
- signature=data.signature
- timestamp=data.timestamp
- nonce=data.nonce
- #自己的token
- token="your_token" #这里改写你在微信公众平台里输入的token
- #字典序排序
- list=[token,timestamp,nonce]
- list.sort()
- sha1=hashlib.sha1()
- map(sha1.update,list)
- hashcode=sha1.hexdigest()
- #如果是来自微信的请求,则回复True
- if hashcode == signature:
- return True
- return False
- class WeixinInterface:
- def __init__(self):
- self.app_root = os.path.dirname(__file__)
- self.templates_root = os.path.join(self.app_root, 'templates')
- self.render = web.template.render(self.templates_root)
- def GET(self):
- #获取输入参数
- data = web.input()
- if _check_hash(data):
- return data.echostr
- def POST(self):
- str_xml = web.data() #获得post来的数据
- xml = etree.fromstring(str_xml)#进行XML解析
- content=xml.find("Content").text#获得用户所输入的内容
- msgType=xml.find("MsgType").text
- fromUser=xml.find("FromUserName").text
- toUser=xml.find("ToUserName").text
- return self.render.reply_text(fromUser,toUser,int(time.time()),u"接收到的文字:"+content)
- application = web.application(urls, globals())
- if __name__ == "__main__":
- application.run()
reply_text.xml
- $def with (toUser,fromUser,createTime,content)
- <xml>
- <ToUserName><![CDATA[$toUser]]></ToUserName>
- <FromUserName><![CDATA[$fromUser]]></FromUserName>
- <CreateTime>$createTime</CreateTime>
- <MsgType><![CDATA[text]]></MsgType>
- <Content><![CDATA[$content]]></Content>
- </xml>
在文件夹目录内,输入命令执行:
- sudo python index.py 80
80 为绑定到 80 端口上,微信公众平台目前仅支持 80 端口
Ps: 如果无法执行,可能需要更改文件权限:chmod +x index.py
打开微信公众号官网:https://mp.weixin.qq.com
依次选择 开发者工具 -》公众平台测试账号
程序执行后,在微信公众平台的接口配置界面分别输入你的 ip 或者域名及 token:
- http://你的ip或域名/weixin
然后输入刚才配置程序时更改的自己的 token
点击提交,提示配置成功。
在微信上对此公众平台测试号发送消息,微信可以返回你发送的消息。
至此,微信平台与树莓派的对接结束
来源: http://www.bubuko.com/infodetail-2440305.html