微信公众号控制树莓派就是在树莓派上使用itchatmp这个开源的微信公众号接口,这是最简单的使用python调用微信公众号。itchatmp基于tornado框架,支持普通使用、nginx反向代理与wsgi,适合各个层次的开发者使用。
快速入门
1.树莓派安装itchatmp
pip install itchatmp
2.公众号前期准备
a·首先需要申请一个微信公众号的测试账号
首先打开微信公众号,然后左边菜单栏最下面点击开发者工具,出现界面如下:
微信公众号截图
b·申请之后会有一个测试号管理,界面如下:
微信公众测试号截图
擦除的这几项都是比较重要的,以后还要用的到
c·树莓派进行端口映射
由于微信公众测试号只能用80端口,所以需要将树莓派到80端口映射到服务器的80端口
在这儿说的服务器端口指的是树莓派做内网穿透的服务器,详情可见前面文章树莓派笔记06-利用frp进行内网穿透实现外网NAS
d·微信公众测试号接口配置信息
上一步端口映射之后,通过网址查询应该是 :网址/80
3.程序调用
首先调用官网快速入门的例程
import itchatmp
itchatmp.update_config(itchatmp.WechatConfig(
token='yourToken',#上面测试号信息的Token,这个自己设置就可以,相当于自己设置密码
appId = 'yourAppId',#跟测试号信息相同
appSecret = 'yourAppSecret'))#同上
@itchatmp.msg_register(itchatmp.content.TEXT)#调用这个函数
def text_reply(msg):#msg是一个字典,返回Content对应的值
print(msg)
return msg['Content']
itchatmp.run()
调用程序之后再次查看 http://网址/80,页面显示为
网址显示
4.配置微信公众测试号
程序调用之后在微信公众测试号中修改接口配置信息,URL即为上述网址,提交之后显示配置成功就已经成功了!
配置信息
5.测试公众号
树莓派端运行上述程序,显示如下:
树莓派运行程序
如果显示80端口已经占用的话,就排查一下是哪些服务占用
netstat -lnp|grep 80 #查看80端口被占用情况
我之前80端口被apache2占用了,禁用或者让它们使用其他端口就可以了。
微信公众平台测试账号上有一个测试号二维码,扫一下关注,然后向测试号发消息,就会收到同样的消息了!
微信公众测试号测试结果
微信公众测试号端测试
树莓派端输出
树莓派后台输出信息
其中可以明显看出来树莓派接收到的键值对中’Content‘对应的值就是输入的值。
现在就已经实现了使用微信公众号控制树莓派的第一步!接下来就使用微信公众号来对树莓派进行控制了!
如果有不明白的可以关注作者微信公众号并私信问题,有时间一定会给解答的:
一技破万法