微信公众平台
首先要去了解这个东西,去看官方的手册及博客,网上面关于微信公众号的后台接入有三个解决办法,
- 使用微信推荐的后端平台,这个到公众号里面去找就能看到,这个相当于腾讯找人代理帮你搞定后端了。
- 使用sae和gae这样的平台来部署自己的应用程序。
- 使用自己的服务器,公有云独立ip。这三个办法都可以,网上介绍的一堆一堆的,在国内购买公有云手续比较复杂,我推荐用digitalocean,国外的服务器,推荐新加坡部署的服务器,使用我的推荐链接,注册成功后有10刀的返现,[点击这里](https://m.do.co/c/e5afac993be8),拿好不谢。
这个有点意思,我研究了一会儿,发现使用后端服务器接入微信公众号是可以的,我将公有云上的一台服务器做了后端,在后端接入了一个类似微软小冰的API,然后跑起来,效果还可以,但是我想让这个微信server放到树莓派上跑起来。由于微信要80端口,而这个端口又被内网封掉了,有个思路,一个是使用公有云上的server做代理,就是借他的端口一用,这个办法肯定是可以的,但是总是转发消息肯定不好,而且微信要求5秒钟就必须回应消息,而我那服务器架在新加坡,转发肯定很慢的,在想要不要做成server-client的架构,server和微信实时交互,部署client在树莓派上,命令消息异步执行,这样看看能不能避免超时带来的问题,而且这样可以不用公开里面的80端口。
这里是设计思路,即消息先从用户发至微信服务器,服务器再与我的服务器交互,我的这个服务器就是微信公众号的后端服务器,而树莓派上面再与这个服务器交互,这样有多个树莓派时都可以同时控制。
树莓派与微信服务器的交互这个就ssh就可以了,端口转发就好了,上一篇文章有介绍,也可以用花生壳。
微信服务器与微信交互,这个有很多开源的方案,python啊,java啊,php啊,网上一搜一大堆,我直接fork了这里,直接可以架构就可以了,说几个遇到的坑是:别人的代码里面要把他的Token去掉,(发现好多github上面的代码大家传上去都不检查去掉关键信息的),然后填写正确的,如果是用的自己的服务器,记得防火墙开80端口。还有就是必须要5s内回复,看下手册把,貌似也有办法延时,但是我基本上不搞什么很复杂的东西。
图灵机器人
这个介绍很多,要尝鲜的可以试一试,我用的是小逗比,它提供了API接口:
http://www.xiaodoubi.com/xiaoiapi.php?msg=关键字
就是每一句都没关联,这个毕竟没法绑定人物,单句也只能这样。
通过微信发送命令给树莓派
制作这个主要是想在家里时不时看看公司服务器运转的情况,用ssh当然没有问题,但是用微信不是更爽。
命令在哪里执行其实没有区别,在树莓派上面执行就通过端口转发过来就可以了,在本地执行也没有问题,到网上看了下,好像也就这里提到了一下 没有看到可行的思路,
我的做法是在用两个ssh,一个用户接收命令,一个去执行,将执行后的结果取出传给微信。在树莓派上执行需要多加一步就是预先ssh登录上,将这个ssh端口绑定到执行的那个终端上就可以了,(也可以考虑ssh无密码登录),我简单实现一个版本,稍后放出代码来。
这个图的“[& #39;” 这个是终端的颜色方案,可是在bash配置里面去掉颜色方案,不过凑合凑合也可以使用。