微信機器人框架:WeRoBot

jopen 11年前發布 | 58K 次閱讀 微信

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

不知道該用什么Token?

WeRoBot幫你準備了一個Token生成器:

import werobot.utils

print(werobot.utils.generate_token())

項目主頁:http://www.baiduhome.net/lib/view/home/1359893611439

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!