回复

你可以在构建Reply时传入一个合法的 Message 对象来自动生成 source 和 target

  1. reply = TextReply(message=message, content='Hello!')

TextReply

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

name

value

content

信息正文。

target

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

source

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

time

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

注解

如果你的handler返回了一个字符串, WeRoBot会自动将其转化为一个文本消息。

ImageReply

ImageReply 为回复图片消息,构造函数的参数如下:

name

value

media_id

通过素材管理接口上传多媒体文件,得到的id。

target

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

source

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

time

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

VoiceReply

VoiceReply 为回复语音消息,构造函数的参数如下:

name

value

media_id

通过素材管理接口上传多媒体文件,得到的id。

target

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

source

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

time

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

VideoReply

VideoReply 为回复视频消息,构造函数的参数如下:

name

value

media_id

通过素材管理接口上传多媒体文件,得到的id。

title

视频消息的标题。可为空。

description

视频消息的描述。可为空。

target

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

source

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

time

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

ArticlesReply

ArticlesReply 是图文消息,构造函数的参数如下:

name

value

content

信息正文。可为空

target

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

source

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

time

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

你需要给 ArticlesReply 添加 Article 来增加图文。 Article 类位于 werobot.reply.Article 。

Article 的构造函数的参数如下:

name

value

title

标题

description

描述

img

图片链接

url

点击图片后跳转链接

注意,微信公众平台对图片链接有特殊的要求,详情可以在 消息接口使用指南 里看到。

在构造完一个 Article 后, 你需要通过 ArticlesReply 的 add_article 参数把它添加进去。就像这样:

  1. from werobot.replies import ArticlesReply, Article
  2. reply = ArticlesReply(message=message)
  3. article = Article(
  4. title="WeRoBot",
  5. description="WeRoBot是一个微信机器人框架",
  6. img="https://github.com/apple-touch-icon-144.png",
  7. url="https://github.com/whtsky/WeRoBot"
  8. )
  9. reply.add_article(article)

注解

根据微信公众平台的 最新公告,每个ArticlesReply中 最多添加1个Article

你也可以让你的 handler 返回一个列表, 里面每一个元素都是一个长度为四的列表,

WeRoBot 会将其自动转为 ArticlesReply 。就像这样:

  1. import werobot
  2. robot = werobot.WeRoBot(token='tokenhere')
  3. @robot.text
  4. def articles(message):
  5. return [
  6. [
  7. "title",
  8. "description",
  9. "img",
  10. "url"
  11. ],
  12. [
  13. "whtsky",
  14. "I wrote WeRoBot",
  15. "https://secure.gravatar.com/avatar/0024710771815ef9b74881ab21ba4173?s=420",
  16. "http://whouz.com/"
  17. ]
  18. ]
  19. robot.run()

MusicReply

MusicReply 是音乐消息,构造函数的参数如下:

name

value

target

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

source

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

time

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

title

标题

description

描述

url

音乐链接

hq_url

高质量音乐链接,WIFI环境优先使用该链接播放音乐。可为空 3

你也可以让你的 handler 返回一个长度为三或四的列表, 3

WeRoBot 会将其自动转为 MusicReply 。就像这样:

  1. import werobot
  2. robot = werobot.WeRoBot(token='tokenhere')
  3. @robot.text
  4. def music(message):
  5. return [
  6. "title",
  7. "description",
  8. "music_url",
  9. "hq_music_url"
  10. ]
  11. @robot.text
  12. def music2(message):
  13. return [
  14. "微信你不懂爱",
  15. "龚琳娜最新力作",
  16. "http://weixin.com/budongai.mp3",
  17. ]
  18. robot.run()

3(1,2)

如果你省略了高质量音乐链接的地址, WeRoBot 会自动将音乐链接的地址用于高质量音乐链接。

TransferCustomerServiceReply

将消息转发到多客服,构造函数的参数如下:

name

value

target

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

source

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

time

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

account

指定会话接入的客服账号,可以没有此参数,没有时会自动分配给可用客服。

SuccessReply

给微信服务器回复 “success”。 假如服务器无法保证在五秒内处理并回复,需要回复 SuccessReply ,这样微信服务器才不会对此作任何处理,并且不会发起重试。