Skip to main content

WeRoBot: a robot framework for wechat

Project description

https://travis-ci.org/whtsky/WeRoBot.png?branch=master

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:TextMessageImageMessageLocationMessage 。他们都继承自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: TextReplyArticlesReply 。他们都继承自 WeChatReply

TextReply 是简单的文本消息,构造函数的参数如下:

name

value

content

信息正文。

target

信息的目标用户。通常是机器人用户。

source

信息的来源用户。通常是发送信息的用户。

time

信息发送的时间,一个UNIX时间戳。默认情况下会使用当前时间。

flag

如果是True, WeRoBot会对这条消息进行星标。你可以在公众平台后台看到所有的星标消息。

你可以在构建Reply时传入一个合法的 Message 类来自动生成 sourcetarget

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 后, 你需要通过 ArticlesReplyadd_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())

贡献代码

WeRoBot欢迎每个人贡献代码。

在提交Pull Request前请注意,我有pep8强迫症。。请确定自己的代码通过flake8检测。

另外,不能自动merge的和不能通过测试的代码不会被接受。你可以在安装nose(pip install nose)之后运行`nosetests`来进行测试。

捐助

Buy me a cup of coffee :)

Via Alipay(支付宝)

"whtsky#gmail.com".replace("#", "@")

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

WeRoBot-0.1.tar.gz (9.0 kB view details)

Uploaded Source

Built Distribution

WeRoBot-0.1-py2.7.egg (16.4 kB view details)

Uploaded Source

File details

Details for the file WeRoBot-0.1.tar.gz.

File metadata

  • Download URL: WeRoBot-0.1.tar.gz
  • Upload date:
  • Size: 9.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for WeRoBot-0.1.tar.gz
Algorithm Hash digest
SHA256 ec39be9ddb420923fa1ef0e38461db7784bfa6777e6be41e743bd4d2e1121038
MD5 6d1621b7f983165609055dfb1da2c3f0
BLAKE2b-256 f32d7d37d158963b553ce2873cc387ab20028ca09c04c5a70d95c1d05f94f4f9

See more details on using hashes here.

File details

Details for the file WeRoBot-0.1-py2.7.egg.

File metadata

  • Download URL: WeRoBot-0.1-py2.7.egg
  • Upload date:
  • Size: 16.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for WeRoBot-0.1-py2.7.egg
Algorithm Hash digest
SHA256 b69c22cd5a5dacc9f1f74c3c8530a9bf4295e5cfc093b13fa55fcf214cf40a99
MD5 e758fe055bd0952da792fc585a72136c
BLAKE2b-256 08135095aebbf9fc4a0dfe3a663984d020e2daffc036297341e7ea051e802ee8

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page