微信機器人框架:WeRoBot
WeRoBot是一個微信機器人框架,采用MIT協議發布。
Hello World
最簡單的Hello World, 會給收到的每一條信息回復 Hello World
import werobot robot = werobot.WeRoBot(token='tokenhere') @robot.handler def echo(message): return 'Hello World!' robot.run()
Handlers
WeRoBot會將合法的請求發送給handlers依次執行。
如果某一個Handler返回了非空值,WeRoBot就會根據這個值創建回復,后面的handlers將不會被執行。
你可以通過兩種方式添加handler
import werobot robot = werobot.WeRoBot(token='tokenhere') # 通過修飾符添加handler @robot.handler def echo(message): return 'Hello World!' # 通過`add_handler`添加handler def echo(message): return 'Hello World!' robot.add_handler(echo)
Messages
目前WeRoBot共有三種Message:TextMessage , ImageMessage 和 LocationMessage 。他們都繼承自WeChatMessage。
TextMessage的屬性:
name | value |
---|---|
type | 'text' |
target | 信息的目標用戶。通常是機器人用戶。 |
source | 信息的來源用戶。通常是發送信息的用戶。 |
time | 信息發送的時間,一個UNIX時間戳。 |
content | 信息的主題內容 |
ImageMessage的屬性:
name | value |
---|---|
type | 'image' |
target | 信息的目標用戶。通常是機器人用戶。 |
source | 信息的來源用戶。通常是發送信息的用戶。 |
time | 信息發送的時間,一個UNIX時間戳。 |
img | 圖片網址。你可以從這個網址下到圖片 |
LocationMessage的屬性:
name | value |
---|---|
type | 'location' |
target | 信息的目標用戶。通常是機器人用戶。 |
source | 信息的來源用戶。通常是發送信息的用戶。 |
time | 信息發送的時間,一個UNIX時間戳。 |
location | 一個元組。(緯度, 經度) |
scale | 地圖縮放大小 |
label | 地理位置信息 |
Replies
目前WeRoBot共有三種Reply: TextReply , ArticlesReply 。他們都繼承自 WeChatReply 。
TextReply 是簡單的文本消息,構造函數的參數如下:
name | value |
---|---|
content | 信息正文。 |
target | 信息的目標用戶。通常是機器人用戶。 |
source | 信息的來源用戶。通常是發送信息的用戶。 |
time | 信息發送的時間,一個UNIX時間戳。默認情況下會使用當前時間。 |
flag | 如果是True, WeRoBot會對這條消息進行星標。你可以在公眾平臺后臺看到所有的星標消息。 |
你可以在構建Reply時傳入一個合法的 Message 類來自動生成 source 和 target
reply = TextReply(message=message, content='Hello!')
如果你的handler返回了一個字符串, WeRoBot會自動將其轉化為一個文本消息。
ArticlesReply 是圖文消息,構造函數的參數如下:
name | value |
---|---|
content | 信息正文。可為空。 |
target | 信息的目標用戶。通常是機器人用戶。 |
source | 信息的來源用戶。通常是發送信息的用戶。 |
time | 信息發送的時間,一個UNIX時間戳。默認情況下會使用當前時間。 |
flag | 如果是True, WeRoBot會對這條消息進行星標。你可以在公眾平臺后臺看到所有的星標消息。 |
你需要給 ArticlesReply 添加 Article 來增加圖文。 Article 類位于 werobot.reply.Article 。
Article 的構造函數的參數如下:
name | value |
---|---|
title | 標題 |
description | 描述 |
img | 圖片鏈接 |
url | 點擊圖片后跳轉鏈接 |
注意,微信公眾平臺對圖片鏈接有特殊的要求,詳情可以在消息接口使用指南 里看到。
在構造完一個 Article 后, 你需要通過 ArticlesReply 的 add_article 參數把它添加進去。就像這樣:
from werobot.reply import ArticlesReply, Article reply = ArticlesReply(message=message) article = Article( title="WeRoBot", desription="WeRoBot是一個微信機器人框架", img="https://github.com/apple-touch-icon-144.png", url="https://github.com/whtsky/WeRoBot" ) reply.add_article(article)
注意,每個ArticlesReply中 最多添加10個Article 。