树莓派与微信公众号对接(python),,一 内网穿透,让外网


一 内网穿透,让外网可以访问树莓派

二 树莓派对接微信

需要安装webpy和python-lxml

git clonegit://github.com/webpy/webpy.gitln -s `pwd`/webpy/webcd /root/webpysudo python setup.py installsudo 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 osimport webimport timeimport hashlibfrom 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 Falseclass 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()
View Code

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>
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

点击提交,提示配置成功。

在微信上对此公众平台测试号发送消息,微信可以返回你发送的消息。

至此,微信平台与树莓派的对接结束

树莓派与微信公众号对接(python)

评论关闭