Werobot簡介
Werobot項(xiàng)目地址(作者:whtsky):鏈接
WeRoBot 是一個微信公眾號開發(fā)框架,采用MIT協(xié)議發(fā)布。
Werobot文檔:鏈接
我原本是打算在個人訂閱號玩一玩自定義開發(fā),因?yàn)榭梢詫?shí)現(xiàn)很多有趣的功能。
結(jié)果弄到自定義菜單的時(shí)候居然發(fā)現(xiàn):
個人訂閱號無法使用自定義菜單開發(fā)接口!需要認(rèn)證!
個人訂閱號無法使用自定義菜單開發(fā)接口!需要認(rèn)證!
個人訂閱號無法使用自定義菜單開發(fā)接口!需要認(rèn)證!
然而,個人名義的訂閱號無法進(jìn)行微信認(rèn)證,所以開發(fā)的熱情一下子丟了一半。
所以在這里就簡短的說一下入門流程,官方文檔寫的很好,但是入門上感覺寫的有不連貫的感覺,在這我就當(dāng)一個補(bǔ)充教程。
申請公眾號
申請公眾號是一個必要的步驟,沒有什么特別需要注意的地方,不過要清楚不同的公眾號類型所擁有的權(quán)限是不同的:
獲取開發(fā)者ID
取得了公眾號后,登錄后臺,點(diǎn)擊“基本配置”,拿到開發(fā)者ID和秘鑰,底下的服務(wù)器配置需要在服務(wù)器部署后再進(jìn)行設(shè)置。
服務(wù)器部署
如果要進(jìn)行微信的自定義開發(fā),你需要一臺后臺服務(wù)器來接受用戶消息,處理消息,最后返回消息給用戶。
并且,你的服務(wù)器需要有域名,也就是網(wǎng)址,而非IP地址。
我的服務(wù)器是亞馬遜EC2,當(dāng)然你也可以用國內(nèi)的云服務(wù)器。
我的域名則是購買的,建議購買國外的服務(wù)商,這樣得到的域名不需要備案。
根據(jù)Werobot文檔:鏈接,你必須有部署的server,基本上云服務(wù)器的Linux都自帶了一些,所以你可以先寫代碼,運(yùn)行時(shí)候在觀察下是否可以直接部署。
server 支持以下幾種:
- cgi
- flup
- wsgiref
- waitress
- cherrypy
- paste
- fapws3
- tornado
- gae
- twisted
- diesel
- meinheld
- gunicorn
- eventlet
- gevent
- rocket
- bjoern
- auto
根據(jù)Werobot文檔:鏈接,先試著寫一個demo:
源代碼:
import werobot
robot = werobot.WeRoBot(token='yzd')
@robot.handler
def echo(message):
return 'Hello World!'
robot.config['HOST'] = '0.0.0.0'
robot.config['PORT'] = 8082
robot.run()
注意我用的port是8082,我使用了反向代理。
一般來說,如果你的服務(wù)器只有一個微信后臺服務(wù),請使用80端口!
如果你是https,請使用443端口!
注意到我的token是隨機(jī)自己設(shè)置的,微信規(guī)定是3位以上數(shù)字字母。之后在填寫的服務(wù)器配置上用得到。
接著,你可以運(yùn)行:
python rebot.py
如圖,已經(jīng)運(yùn)行(最好用screen或者文檔說的supervisor保證進(jìn)程不被殺掉):
驗(yàn)證服務(wù)器有效性
之后,修改服務(wù)器配置,填寫你的域名(之前確保你已經(jīng)做好域名DNS映射!),token=‘yzd’,點(diǎn)擊確定,微信會自動發(fā)送一個確認(rèn)信息到你的服務(wù)器,一旦成功返回正確結(jié)果,驗(yàn)證就成功了。
實(shí)驗(yàn)效果
現(xiàn)在,你可以用手機(jī)給訂閱號發(fā)消息:
補(bǔ)充
最后,貼上我之前寫的自定義菜單的源碼,由于我是個人訂閱號,沒有權(quán)限,所以返回了48001錯誤,郁悶...
from werobot import WeRoBot
robot = WeRoBot()
robot.config["APP_ID"] = "xxxxxxxxxx"
robot.config["APP_SECRET"] = "xxxxxxxxxxxxxxxxxxxxxxxxxx"
client = robot.client
client.create_menu({
"button":[
{
"type":"click",
"name":"des",
"key":"describe"
},
{
"name":"find",
"sub_button":[
{
"type":"view",
"name":"twitter",
"key":"trump"
}
]
},
{
"type":"viwe",
"name":"buy",
"url":"https://usau-buy.com/"
},
]})
本篇文章是用markdown寫的,這是我第一次用markdown編輯器寫blog,對于半個強(qiáng)迫癥的我來說很有好處,整潔性大大增強(qiáng),以后我會盡量只用markdown。