需要安装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()
#如果是来自微信的请求,则回复Trueif hashcode ==signature:returnTruereturnFalseclassWeixinInterface:
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):returndata.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").textreturn self.render.reply_text(fromUser,toUser,int(time.time()),u"接收到的文字:"+content)
application=web.application(urls, globals())if __name__ == "__main__":
application.run()
View Code
reply_text.xml
$def with (toUser,fromUser,createTime,content)
$createTime
View Code
将此文件夹放到树莓派中,更改index.py中的your_token为你的token
在文件夹目录内,输入命令执行:sudo python index.py 80
80为绑定到80端口上,微信公众平台目前仅支持80端口
Ps:如果无法执行,可能需要更改文件权限:chmod +x index.py
打开微信公众号官网:https://mp.weixin.qq.com
依次选择 开发者工具-》公众平台测试账号
程序执行后,在微信公众平台的接口配置界面分别输入你的ip或者域名及token:
http://你的ip或域名/weixin
然后输入刚才配置程序时更改的自己的token
点击提交,提示配置成功。
在微信上对此公众平台测试号发送消息,微信可以返回你发送的消息。
至此,微信平台与树莓派的对接结束