主动消息接口

class wechatpy.client.api.WeChatMessage(client=None)[源代码]
delete_mass(msg_id)[源代码]

删除群发消息

详情请参考 https://mp.weixin.qq.com/wiki?id=mp1481187827_i0l21

参数

msg_id – 要删除的群发消息 ID

返回

返回的 JSON 数据包

使用示例:

from wechatpy import WeChatClient

client = WeChatClient('appid', 'secret')
res = client.message.delete_mass('message id')
get_autoreply_info()[源代码]

获取自动回复规则

详情请参考 http://mp.weixin.qq.com/wiki/7/7b5789bb1262fb866d01b4b40b0efecb.html

返回

返回的 JSON 数据包

使用示例:

from wechatpy import WeChatClient

client = WeChatClient('appid', 'secret')
info = client.message.get_autoreply_info()
get_mass(msg_id)[源代码]

查询群发消息发送状态

详情请参考 https://mp.weixin.qq.com/wiki?id=mp1481187827_i0l21

参数

msg_id – 群发消息后返回的消息id

返回

返回的 JSON 数据包

使用示例:

from wechatpy import WeChatClient

client = WeChatClient('appid', 'secret')
res = client.message.get_mass('mass message id')
get_subscribe_authorize_url(scene, template_id, redirect_url, reserved=None)[源代码]

构造请求用户授权的url 详情请参阅: https://mp.weixin.qq.com/wiki?id=mp1500374289_66bvB

参数
  • scene (int) – 订阅场景值,开发者可以填0-10000的整形值,用来标识订阅场景值

  • template_id – 订阅消息模板ID,登录公众平台后台,在接口权限列表处可查看订阅模板ID

  • redirect_url – 授权后重定向的回调地址

  • reserved – 用于保持请求和回调的状态,授权请后原样带回给第三方。该参数可用于防止csrf攻击。若不指定则随机生成。

send_articles(user_id, articles, account=None)[源代码]

发送图文消息

详情请参考 http://mp.weixin.qq.com/wiki/7/12a5a320ae96fecdf0e15cb06123de9f.html

参数
  • user_id – 用户 ID 。 就是你收到的 Message 的 source

  • articles – 一个包含至多10个图文的数组, 或者微信图文消息素材 media_id

  • account – 可选,客服账号

返回

返回的 JSON 数据包

send_card(user_id, card_id, card_ext=None, account=None)[源代码]

发送卡券消息

详情请参参考 https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140547

参数
  • user_id – 用户 ID 。 就是你收到的 Message 的 source

  • card_id – 卡券 ID

  • card_ext – 可选,卡券扩展信息

  • account – 可选,客服账号

返回

返回的 JSON 数据包

send_image(user_id, media_id, account=None)[源代码]

发送图片消息

详情请参考 http://mp.weixin.qq.com/wiki/7/12a5a320ae96fecdf0e15cb06123de9f.html

参数
  • user_id – 用户 ID 。 就是你收到的 Message 的 source

  • media_id – 图片的媒体ID。 可以通过 upload_media() 上传。

  • account – 可选,客服账号

返回

返回的 JSON 数据包

使用示例:

from wechatpy import WeChatClient

client = WeChatClient('appid', 'secret')
res = client.message.send_image('openid', 'media_id')

发送图文消息(单图文)

详情请参考 https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/customer-message/customerServiceMessage.send.html#method-http

参数
  • user_id – 用户 ID 。 就是你收到的 Message 的 source

  • article

返回

返回的 JSON 数据包

send_mass_article(group_or_users, media_id, is_to_all=False, preview=False, send_ignore_reprint=0, client_msg_id=None)[源代码]

群发图文消息

详情请参考 https://mp.weixin.qq.com/wiki?id=mp1481187827_i0l21

参数
  • group_or_users – 值为整型数字时为按分组群发,值为列表/元组时为按 OpenID 列表群发 当 is_to_all 为 True 时,传入 None 即对所有用户发送。

  • media_id – 图文的媒体 ID。可以通过 upload_articles() 上传。

  • is_to_all (bool) – 用于设定是否向全部用户发送,值为true或false,选择true该消息群发给所有用户 选择false可根据group_id发送给指定群组的用户

  • preview (bool) – 是否发送预览,此时 group_or_users 参数应为一个openid字符串

  • send_ignore_reprint (int) – 指定待群发的文章被判定为转载时,是否继续群发。 当 send_ignore_reprint 参数设置为1时,文章被判定为转载时,且原创文允许转载时,将继续进行群发操作。 当 send_ignore_reprint 参数设置为0时,文章被判定为转载时,将停止群发操作。 send_ignore_reprint 默认为0。

  • client_msg_id (str) – 开发者侧群发 msgid,长度限制 64 字节

返回

返回的 JSON 数据包

send_mass_card(group_or_users, card_id, is_to_all=False, preview=False, send_ignore_reprint=0, client_msg_id=None)[源代码]

群发卡券消息

详情请参考 https://mp.weixin.qq.com/wiki?id=mp1481187827_i0l21

参数
  • group_or_users – 值为整型数字时为按分组群发,值为列表/元组时为按 OpenID 列表群发 当 is_to_all 为 True 时,传入 None 即对所有用户发送。

  • card_id – 卡券 ID

  • is_to_all (bool) – 用于设定是否向全部用户发送,值为true或false,选择true该消息群发给所有用户 选择false可根据group_id发送给指定群组的用户

  • preview (bool) – 是否发送预览,此时 group_or_users 参数应为一个openid字符串

  • send_ignore_reprint (int) – 指定待群发的文章被判定为转载时,是否继续群发。 当 send_ignore_reprint 参数设置为1时,文章被判定为转载时,且原创文允许转载时,将继续进行群发操作。 当 send_ignore_reprint 参数设置为0时,文章被判定为转载时,将停止群发操作。 send_ignore_reprint 默认为0。

  • client_msg_id (str) – 开发者侧群发 msgid,长度限制 64 字节

返回

返回的 JSON 数据包

send_mass_image(group_or_users, media_id, is_to_all=False, preview=False, send_ignore_reprint=0, client_msg_id=None)[源代码]

群发图片消息

详情请参考 https://mp.weixin.qq.com/wiki?id=mp1481187827_i0l21

参数
  • group_or_users – 值为整型数字时为按分组群发,值为列表/元组时为按 OpenID 列表群发 当 is_to_all 为 True 时,传入 None 即对所有用户发送。

  • media_id – 图片的媒体 ID。 可以通过 upload_media() 上传。

  • is_to_all (bool) – 用于设定是否向全部用户发送,值为true或false,选择true该消息群发给所有用户 选择false可根据group_id发送给指定群组的用户

  • preview (bool) – 是否发送预览,此时 group_or_users 参数应为一个openid字符串

  • send_ignore_reprint (int) – 指定待群发的文章被判定为转载时,是否继续群发。 当 send_ignore_reprint 参数设置为1时,文章被判定为转载时,且原创文允许转载时,将继续进行群发操作。 当 send_ignore_reprint 参数设置为0时,文章被判定为转载时,将停止群发操作。 send_ignore_reprint 默认为0。

  • client_msg_id (str) – 开发者侧群发 msgid,长度限制 64 字节

返回

返回的 JSON 数据包

send_mass_text(group_or_users, content, is_to_all=False, preview=False, send_ignore_reprint=0, client_msg_id=None)[源代码]

群发文本消息

详情请参考 https://mp.weixin.qq.com/wiki?id=mp1481187827_i0l21

参数
  • group_or_users – 值为整型数字时为按分组群发,值为列表/元组时为按 OpenID 列表群发 当 is_to_all 为 True 时,传入 None 即对所有用户发送。

  • content – 消息正文

  • is_to_all (bool) – 用于设定是否向全部用户发送,值为true或false,选择true该消息群发给所有用户 选择false可根据group_id发送给指定群组的用户

  • preview (bool) – 是否发送预览,此时 group_or_users 参数应为一个openid字符串

  • send_ignore_reprint (int) – 指定待群发的文章被判定为转载时,是否继续群发。 当 send_ignore_reprint 参数设置为1时,文章被判定为转载时,且原创文允许转载时,将继续进行群发操作。 当 send_ignore_reprint 参数设置为0时,文章被判定为转载时,将停止群发操作。 send_ignore_reprint 默认为0。

  • client_msg_id (str) – 开发者侧群发 msgid,长度限制 64 字节

返回

返回的 JSON 数据包

send_mass_video(group_or_users, media_id, title=None, description=None, is_to_all=False, preview=False, send_ignore_reprint=0, client_msg_id=None)[源代码]

群发视频消息

详情请参考 https://mp.weixin.qq.com/wiki?id=mp1481187827_i0l21

参数
  • group_or_users – 值为整型数字时为按分组群发,值为列表/元组时为按 OpenID 列表群发 当 is_to_all 为 True 时,传入 None 即对所有用户发送。

  • media_id – 视频的媒体 ID。可以通过 upload_video() 上传。

  • title – 视频标题

  • description – 视频描述

  • is_to_all (bool) – 用于设定是否向全部用户发送,值为true或false,选择true该消息群发给所有用户 选择false可根据group_id发送给指定群组的用户

  • preview (bool) – 是否发送预览,此时 group_or_users 参数应为一个openid字符串

  • send_ignore_reprint (int) – 指定待群发的文章被判定为转载时,是否继续群发。 当 send_ignore_reprint 参数设置为1时,文章被判定为转载时,且原创文允许转载时,将继续进行群发操作。 当 send_ignore_reprint 参数设置为0时,文章被判定为转载时,将停止群发操作。 send_ignore_reprint 默认为0。

  • client_msg_id (str) – 开发者侧群发 msgid,长度限制 64 字节

返回

返回的 JSON 数据包

send_mass_voice(group_or_users, media_id, is_to_all=False, preview=False, send_ignore_reprint=0, client_msg_id=None)[源代码]

群发语音消息

详情请参考 https://mp.weixin.qq.com/wiki?id=mp1481187827_i0l21

参数
  • group_or_users – 值为整型数字时为按分组群发,值为列表/元组时为按 OpenID 列表群发 当 is_to_all 为 True 时,传入 None 即对所有用户发送。

  • media_id – 语音的媒体 ID。可以通过 upload_media() 上传。

  • is_to_all (bool) – 用于设定是否向全部用户发送,值为true或false,选择true该消息群发给所有用户 选择false可根据group_id发送给指定群组的用户

  • preview (bool) – 是否发送预览,此时 group_or_users 参数应为一个openid字符串

  • send_ignore_reprint (int) – 指定待群发的文章被判定为转载时,是否继续群发。 当 send_ignore_reprint 参数设置为1时,文章被判定为转载时,且原创文允许转载时,将继续进行群发操作。 当 send_ignore_reprint 参数设置为0时,文章被判定为转载时,将停止群发操作。 send_ignore_reprint 默认为0。

  • client_msg_id (str) – 开发者侧群发 msgid,长度限制 64 字节

返回

返回的 JSON 数据包

send_mini_program_page(user_id, miniprogrampage, account=None)[源代码]

发送小程序卡片(要求小程序与公众号已关联)

详情请参参考 https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140547

参数
  • user_id – 用户 ID openid

  • miniprogrampage – 小程序卡片信息

  • account – 可选,客服账号

返回

返回的 JSON 数据包

send_msg_menu(openid, msgmenu, account=None)[源代码]

发送菜单消息

详情请参考 https://developers.weixin.qq.com/doc/offiaccount/Message_Management/Service_Center_messages.html#7

参数
  • openid – 填接收消息的用户openid

  • msgmenu – 菜单字典

  • account – 可选,客服账号

返回

返回的 JSON 数据包

send_music(user_id, url, hq_url, thumb_media_id, title=None, description=None, account=None)[源代码]

发送音乐消息

详情请参考 http://mp.weixin.qq.com/wiki/7/12a5a320ae96fecdf0e15cb06123de9f.html

参数
  • user_id – 用户 ID 。 就是你收到的 Message 的 source

  • url – 音乐链接

  • hq_url – 高品质音乐链接,wifi环境优先使用该链接播放音乐

  • thumb_media_id – 缩略图的媒体ID。 可以通过 upload_media() 上传。

  • title – 音乐标题

  • description – 音乐描述

  • account – 可选,客服账号

返回

返回的 JSON 数据包

send_subscribe_message(openid, template_id, data, miniprogram=None, page=None)[源代码]

发送服务号订阅消息 详情请参考 https://developers.weixin.qq.com/doc/offiaccount/Subscription_Messages/api.html#send%E5%8F%91%E9%80%81%E8%AE%A2%E9%98%85%E9%80%9A%E7%9F%A5

备注:page 和 miniprogram 同时不填,无跳转;page 和 miniprogram 同时填写,优先跳转小程序

send_subscribe_template(openid, template_id, scene, title, data, url=None)[源代码]

一次性订阅消息,通过API推送订阅模板消息给到授权微信用户。 详情请参阅: https://mp.weixin.qq.com/wiki?id=mp1500374289_66bvB

参数
  • openid – 填接收消息的用户openid

  • template_id – 订阅消息模板ID

  • scene (int) – 订阅场景值,开发者可以填0-10000的整形值,用来标识订阅场景值

  • title – 消息标题,15字以内

  • data (dict) – 消息正文,value为消息内容,color为颜色,200字以内

  • url – 点击消息跳转的链接,需要有ICP备案

send_template(user_id, template_id, data, url=None, mini_program=None)[源代码]

发送模板消息

详情请参考 https://mp.weixin.qq.com/wiki?id=mp1445241432&lang=zh_CN

参数
  • user_id – 用户 ID 。 就是你收到的 Message 的 source

  • template_id – 模板 ID。在公众平台线上模板库中选用模板获得

  • url – 链接地址

  • data – 模板消息数据

  • mini_program – 跳小程序所需数据, 如:{‘appid’: ‘appid’, ‘pagepath’: ‘index?foo=bar’}

返回

返回的 JSON 数据包

send_text(user_id, content, account=None)[源代码]

发送文本消息

详情请参考 http://mp.weixin.qq.com/wiki/7/12a5a320ae96fecdf0e15cb06123de9f.html

参数
  • user_id – 用户 ID 。 就是你收到的 Message 的 source

  • content – 消息正文

  • account – 可选,客服账号

返回

返回的 JSON 数据包

使用示例:

from wechatpy import WeChatClient

client = WeChatClient('appid', 'secret')
res = client.message.send_text('openid', 'text')
send_video(user_id, media_id, title=None, description=None, account=None)[源代码]

发送视频消息

详情请参考 http://mp.weixin.qq.com/wiki/7/12a5a320ae96fecdf0e15cb06123de9f.html

参数
  • user_id – 用户 ID 。 就是你收到的 Message 的 source

  • media_id – 发送的视频的媒体ID。 可以通过 upload_media() 上传。

  • title – 视频消息的标题

  • description – 视频消息的描述

  • account – 可选,客服账号

返回

返回的 JSON 数据包

使用示例:

from wechatpy import WeChatClient

client = WeChatClient('appid', 'secret')
res = client.message.send_video('openid', 'media_id', 'title', 'description')
send_voice(user_id, media_id, account=None)[源代码]

发送语音消息

详情请参考 http://mp.weixin.qq.com/wiki/7/12a5a320ae96fecdf0e15cb06123de9f.html

参数
  • user_id – 用户 ID 。 就是你收到的 Message 的 source

  • media_id – 发送的语音的媒体ID。 可以通过 upload_media() 上传。

  • account – 可选,客服账号

返回

返回的 JSON 数据包

使用示例:

from wechatpy import WeChatClient

client = WeChatClient('appid', 'secret')
res = client.message.send_voice('openid', 'media_id')