Home

Awesome

wechat-psn-backend

一个微信公众号(服务号,Public Service Number)后台环境(Linux+python+werobot+cherrypy),使用DaoCloud网站灵雀云来管理运行,使用者几分钟即可拥有自己的类似SAE/GAE/BAE云的应用开发平台,只要部署了自己的代码,即可在几秒钟内提供微信订阅号/服务号后台服务。这个平台使用纯Python、CherryPy和WeRoBot构建。在这个平台上开发请阅读WeRoBot的文档。或者您也可以把Dockerfile改改,安装成您自己喜欢的应用框架和web服务器。

起源

这个项目的起源是被逼无奈。起初,在SAE上申请个账号,申请了应用空间。结果遇到了巨大的麻烦:

DaoCloud

通过七牛网的友情链接发现了DaoCloud,在DaoCloud的技术人员热情地帮助下,发现了Docker是一个非常先进的工具,可以用来快速构建自己的应用环境,而DaoCloud则可以帮助我们实现快速将Docker方式实现的应用环境部署到云中。如此一来,还需要xAE们吗?自己就可以实现一个myAE了。

更好玩的是:在DaoCloud的管理下,我们可以将环境的不同组件部署到不同的地方去——应用主机可以放在AWS的VPS上,数据库可以放在RackSpace或阿里云、腾讯云、微软Arzur云平台上,存储放到七牛云。实现了应用环境的分布式。甚至高兴的话,把应用主机部署在自己家里的树莓派上,哪怕没有公网IP也可以!

灵雀云

这是另一个类似DaoCloud的网站,用来作为网络Docker系统实现,可以网络式构建docker image,然后直接部署在灵雀云的容器中,上线!

时速云

这个网站是比较早的一个Docker云服务商。在这个网站上面使用该repo和在上面两个网站的使用方法是一致的。

Docker

若第一次看到Docker这个词,请参考《Docker和DaoCloud纯小白入门手册》来了解它。若有了一定了解,那么这个Repository里的dockerfile就是用来构建docker image的。目标是形成一个开箱即用的用于开发微信公众号后台的App Engine,当然了,这个App Engine与其他SAE/GAE等不同的地方在于它完全是属于开发者自己的。可以随便更改环境配置,比如增加个框架什么的。

使用方法

那么对于开发者,这个Repository到底有什么好处呢?这个Repository里有构建环境必要的Dockfile和配置文件yaml,只需要fork这个Repository,然后您本人的GitHub目录下就有了同名repository,把自己的Python代码push到这个同名repository里,使用DaoCloud,点两下鼠标就能在几分钟之内发布自己的微信服务号后台,在微信公众号配置页面开发者模式中关联这个后台,微信公众号立刻可用。相比较原先需要几个小时乃至几天的安装、配置环境、部署代码、运行,大大节省了时间。作为演示,此Repo中已经放置了index.py,在任何一个Docker云服务商那里运用这个Repo生成镜像并部署成应用,那么马上就可以把微信公众号后台开发者模式绑定这个应用,Token使用testrobot。关注自己的公众号,发个消息,看看会发生什么吧。

测试方法

在DaoCloud或灵雀云上运行起来之后,使用微信提供的测试页面,URL填写为在DaoCloud或灵雀云获得的应用URL,Token填写为testrobot,加密调试选“兼容模式”,其他的按照微信文档说明填写。即可向这个后台应用发消息并获得回复。