基于树莓派的微信服务器

微信公众平台

首先要去了解这个东西,去看官方的手册及博客,网上面关于微信公众号的后台接入有三个解决办法,

  • 使用微信推荐的后端平台,这个到公众号里面去找就能看到,这个相当于腾讯找人代理帮你搞定后端了。
  • 使用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=关键字

就是每一句都没关联,这个毕竟没法绑定人物,单句也只能这样。 vnc

通过微信发送命令给树莓派

制作这个主要是想在家里时不时看看公司服务器运转的情况,用ssh当然没有问题,但是用微信不是更爽。

命令在哪里执行其实没有区别,在树莓派上面执行就通过端口转发过来就可以了,在本地执行也没有问题,到网上看了下,好像也就这里提到了一下 没有看到可行的思路,

我的做法是在用两个ssh,一个用户接收命令,一个去执行,将执行后的结果取出传给微信。在树莓派上执行需要多加一步就是预先ssh登录上,将这个ssh端口绑定到执行的那个终端上就可以了,(也可以考虑ssh无密码登录),我简单实现一个版本,稍后放出代码来。

vnc

这个图的“[& #39;” 这个是终端的颜色方案,可是在bash配置里面去掉颜色方案,不过凑合凑合也可以使用。

最近的文章

CocoaLumberjack框架学习

关于日志系统CocoaLumberjack是一个iOS/OSX 下的一个日志系统,据说比原生的NSLog要快很多倍,CocoaLumberjack是Mac和iOS上一个集快捷、简单、强大和灵活于一身的日志框架。CocoaLumberjack类似于流行的日志框架(如log4j),但它是专为Objective-C设计的,利用了多线程、GCD(如果可用)、无锁原子操作Objective-C运行时的动态特性。我这段时间正好要用上,走读了一下代码,仅作记录。简单介绍CocoaLumberjack是一...…

继续阅读
更早的文章

深圳百公里徒步见闻

机缘巧合很偶然的机会参加了这次深圳百公里的徒步活动,在活动还有三天的时候才报名,可惜没有名额了,就跟在同事的团里参与活动。对数字天生不敏感的我,全然不知道100km到底是多远,只知道走就对了。幸运的人遇见yoyo是在百公里的头一天,在地铁口举了一个“前面有肉”的牌子,当时没有独自报名,而是打算跟团,正好进了这个名为“前面有肉”团队,一开始还以为是一个逗比团,没想到当天参加的全部都是妹子,其他人都要第二天参加山地的徒步,这还不得让我肩负起咱团的使命,就与队长以及yoyo聊起来了。什么百公里禁...…

继续阅读