View Source WeChat.Work.Message (wechat v0.16.0)

消息推送

Summary

Types

@type content() :: String.t()
@type msg() :: map()
@type msg_id() :: String.t()

消息ID

@type msg_type() :: String.t()

消息类型

  • text: 文本消息
  • image: 图片消息
  • voice: 语音消息
  • video: 视频消息
  • file: 文件消息
  • textcard: 文本卡片消息
  • news: 图文消息
  • mpnews: 图文消息(mpnews)
  • markdown: markdown消息
  • miniprogram_notice: 小程序通知消息
  • template_card: 模板卡片消息
@type opts() :: Enumerable.t()
@type to() :: {:user | :party | :tag, list() | String.t()}

Functions

Link to this function

recall(client, agent, msg_id)

View Source

撤回应用消息 - 官方文档

Link to this function

send(client, agent, to, msg_type, msg, opts \\ [])

View Source
Link to this function

send_file(client, agent, to, media_id, opts \\ [])

View Source

发送文件消息 - 官方文档

Link to this function

send_image(client, agent, to, media_id, opts \\ [])

View Source

发送图片消息 - 官方文档

Link to this function

send_markdown(client, agent, to, content, opts \\ [])

View Source
@spec send_markdown(
  WeChat.Work.client(),
  WeChat.Work.agent(),
  to(),
  content(),
  opts()
) ::
  WeChat.response()

发送markdown消息 - 官方文档

Link to this function

send_message(client, agent, body)

View Source
@spec send_message(WeChat.Work.client(), WeChat.Work.agent(), body :: map()) ::
  WeChat.response()

发送应用消息 - 官方文档

应用支持推送文本、图片、视频、文件、图文等类型。

  • 各个消息类型的具体POST格式请阅后续“消息类型”部分。
  • 如果有在管理端对应用设置“在微工作台中始终进入主页”,应用在微信端只能接收到文本消息,并且文本消息的长度限制为20字节,超过20字节会被截断。同时其他消息类型也会转换为文本消息,提示用户到企业微信查看。
  • 支持id转译,将userid/部门id转成对应的用户名/部门名,目前仅文本/文本卡片/图文/图文(mpnews)这四种消息类型的部分字段支持。仅第三方应用需要用到,企业自建应用可以忽略。具体支持的范围和语法,请查看附录id转译说明。
  • 支持重复消息检查,当指定 "enable_duplicate_check": 1开启: 表示在一定时间间隔内,同样内容(请求json)的消息,不会重复收到;时间间隔可通过duplicate_check_interval指定,默认1800秒。
  • 从2021年2月4日开始,企业关联添加的「小程序」应用,也可以发送文本、图片、视频、文件、图文等各种类型的消息了。
Link to this function

send_miniprogram_notice(client, agent, to, msg, opts \\ [])

View Source
@spec send_miniprogram_notice(
  WeChat.Work.client(),
  WeChat.Work.agent(),
  to(),
  msg(),
  opts()
) ::
  WeChat.response()

发送小程序通知消息 - 官方文档

Link to this function

send_mpnews(client, agent, to, msg, opts \\ [])

View Source
@spec send_mpnews(WeChat.Work.client(), WeChat.Work.agent(), to(), msg(), opts()) ::
  WeChat.response()

发送图文消息(mpnews) - 官方文档

Link to this function

send_news(client, agent, to, msg, opts \\ [])

View Source
@spec send_news(WeChat.Work.client(), WeChat.Work.agent(), to(), msg(), opts()) ::
  WeChat.response()

发送图文消息 - 官方文档

Link to this function

send_template_card(client, agent, to, msg, opts \\ [])

View Source
@spec send_template_card(
  WeChat.Work.client(),
  WeChat.Work.agent(),
  to(),
  msg(),
  opts()
) ::
  WeChat.response()

发送模板卡片消息 - 官方文档

Link to this function

send_text(client, agent, to, content, opts \\ [])

View Source
@spec send_text(WeChat.Work.client(), WeChat.Work.agent(), to(), content(), opts()) ::
  WeChat.response()

发送文本消息 - 官方文档

Link to this function

send_text_card(client, agent, to, title, description, url, btn_txt, opts \\ [])

View Source
@spec send_text_card(
  WeChat.Work.client(),
  WeChat.Work.agent(),
  to(),
  title :: String.t(),
  description :: String.t(),
  url :: String.t(),
  btn_txt :: String.t(),
  opts()
) :: WeChat.response()

发送文本卡片消息 - 官方文档

Link to this function

send_video(client, agent, to, media_id, title, description, opts \\ [])

View Source
@spec send_video(
  WeChat.Work.client(),
  WeChat.Work.agent(),
  to(),
  WeChat.Work.Material.media_id(),
  title :: String.t(),
  description :: String.t(),
  opts()
) :: WeChat.response()

发送视频消息 - 官方文档

Link to this function

send_voice(client, agent, to, media_id, opts \\ [])

View Source

发送语音消息 - 官方文档

@spec to_party(list()) :: to()
@spec to_tag(list()) :: to()
@spec to_user(list() | String.t()) :: to()
Link to this function

update_template_card(client, agent, body)

View Source
@spec update_template_card(WeChat.Work.client(), WeChat.Work.agent(), body :: map()) ::
  WeChat.response()

更新模版卡片消息 - 官方文档

应用可以发送模板卡片消息,发送之后可再通过接口更新可回调的用户任务卡片消息的替换文案信息 (仅原卡片为 按钮交互型、投票选择型、多项选择型的卡片可以调用本接口更新)。

请注意,当应用调用发送模版卡片消息后,接口会返回一个 response_code,通过 response_code 用户可以调用本接口一次。 后续如果有用户点击任务卡片,回调接口也会带上 response_code,开发者通过该 code 也可以调用本接口一次, 注意 response_code 的有效期是24小时,超过24小时后将无法使用。