wxjava 发送客服消息

类图

wxjava 是一个基于 Java 开发的微信公众号开发工具包,它提供了一系列的 API 来方便开发者与微信公众平台进行交互。其中一个常用的功能是发送客服消息,即通过公众号向用户发送消息。

什么是客服消息?

客服消息是指通过微信公众号向用户发送的消息,可以是文本、图片、链接等多种形式。通过发送客服消息,公众号可以主动与用户进行互动,提供更好的服务。

发送客服消息的准备工作

在发送客服消息之前,我们需要先获取到用户的 openid。可以通过用户授权、用户关注等方式获取用户的 openid。一旦获取到了用户的 openid,就可以向该用户发送客服消息了。

首先,我们需要在 pom.xml 文件中添加 wxjava 的依赖:

<dependency>
  <groupId>cn.binarywang</groupId>
  <artifactId>weixin-java-mp</artifactId>
  <version>3.7.0</version>
</dependency>

然后,我们需要进行一些配置,包括公众号的 appid、appsecret、token 等信息。可以在 application.properties 文件中进行配置:

wx.mp.appId=your_app_id
wx.mp.secret=your_app_secret
wx.mp.token=your_token
wx.mp.aesKey=your_aes_key

接下来,我们需要创建一个 WxMpService 对象来进行消息发送的操作:

WxMpService wxMpService = new WxMpServiceImpl();
wxMpService.setWxMpConfigStorage(wxMpConfigStorage);

发送文本消息

发送文本消息是最简单的一种客服消息类型。可以通过以下代码来发送一条文本消息:

WxMpKefuMessage message = WxMpKefuMessage.TEXT()
    .toUser("openid")
    .content("Hello, World!")
    .build();

wxMpService.getKefuService().sendKefuMessage(message);

发送图片消息

发送图片消息需要先将图片上传到微信服务器,并获取到图片的 mediaId。然后,可以通过以下代码来发送一条图片消息:

WxMediaUploadResult uploadResult = wxMpService.getMaterialService()
    .mediaUpload(WxConsts.MediaFileType.IMAGE, new File("image.jpg"));

WxMpKefuMessage message = WxMpKefuMessage.IMAGE()
    .toUser("openid")
    .mediaId(uploadResult.getMediaId())
    .build();

wxMpService.getKefuService().sendKefuMessage(message);

发送链接消息

发送链接消息可以包含标题、描述、链接和缩略图等信息。可以通过以下代码来发送一条链接消息:

WxMpKefuMessage message = WxMpKefuMessage.LINK()
    .toUser("openid")
    .title("Title")
    .description("Description")
    .url("
    .thumbUrl("
    .build();

wxMpService.getKefuService().sendKefuMessage(message);

发送图文消息

发送图文消息可以包含多个图文项,每个图文项包含标题、描述、图片链接和跳转链接等信息。可以通过以下代码来发送一条图文消息:

WxMpKefuMessage.WxArticle article1 = new WxMpKefuMessage.WxArticle();
article1.setTitle("Title 1");
article1.setDescription("Description 1");
article1.setPicUrl("
article1.setUrl("

WxMpKefuMessage.WxArticle article2 = new WxMpKefuMessage.WxArticle();
article2.setTitle("Title 2");
article2.setDescription("Description 2");
article2.setPicUrl("
article2.setUrl("

WxMpKefuMessage message = WxMpKefuMessage.NEWS()
    .toUser("openid")
    .addArticle(article1)
    .addArticle(article2)
    .build();

wxMpService.getKefuService().sendKefuMessage(message);

结语

通过使用 wxjava 提供的 API,我们可以方便地发送不同类型的客服消息。无论是文本、图片、链接还是图文消息,都可以轻松发送给用户,提供更好