微信公众平台开发(12)--主动发送消息(客服消息)

1. 前言

上一篇我们获取到了用户信息,本篇我们实现下主动给客户发送消息,也叫客服消息。


2. 代码

代码比较简单,如下:


/**

* 客服消息

*/

@RestController

public class KefuMessageController {

@Autowired

private WxMpService wxMpService;


/**

 * 主动发送消息

 */

@RequestMapping("/sendMessage")

public boolean sendMessage(@RequestParam("openid") String openid, @RequestParam("content") String content) throws WxErrorException {

 WxMpKefuMessage message=WxMpKefuMessage.TEXT().toUser(openid).content(content).build();

 wxMpService.getKefuService().sendKefuMessage(message);

 return true;

}

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

通过sendMessage方法,即可给指定openid的用发送content文本消息。


3. 测试

访问http://127.0.0.1/wx-server/sendMessage?openid=oINiq6UqTiKqfXN3H6RmeKvvRnmw&content=这是一个测试消息。注意openid为之前章节获取的关注本公众号的用户openid。


此时打开对应用户关注的公众号会话信息,会发现已收到相关消息。


4. 发送其他类型消息

实际上,除了文本消息,还有其他类型的消息,此处给出格式,感兴趣的同学自己去研究就OK。


文本消息:


WxMpKefuMessage

 .TEXT()

 .toUser("OPENID")

 .content("sfsfdsdf")

 .build();


图片消息:


WxMpKefuMessage

 .IMAGE()

 .toUser("OPENID")

 .mediaId("MEDIA_ID")

 .build();


语音消息:


WxMpKefuMessage.VOICE()

 .toUser("OPENID")

 .mediaId("MEDIA_ID")

 .build();


视频消息:


WxMpKefuMessage.VIDEO()

 .toUser("OPENID")

 .title("TITLE")

 .mediaId("MEDIA_ID")

 .thumbMediaId("MEDIA_ID")

 .description("DESCRIPTION")

 .build();


音乐消息:


WxMpKefuMessage.MUSIC()

.toUser("OPENID")

.title("TITLE")

.thumbMediaId("MEDIA_ID")

.description("DESCRIPTION")

.musicUrl("MUSIC_URL")

.hqMusicUrl("HQ_MUSIC_URL")

.build();


图文消息:


WxMpKefuMessage.WxArticle article1 = new WxMpKefuMessage.WxArticle();

article1.setUrl("URL");

article1.setPicUrl("PIC_URL");

article1.setDescription("Is Really A Happy Day");

article1.setTitle("Happy Day");


WxMpKefuMessage.WxArticle article2 = new WxMpKefuMessage.WxArticle();

article2.setUrl("URL");

article2.setPicUrl("PIC_URL");

article2.setDescription("Is Really A Happy Day");

article2.setTitle("Happy Day");


WxMpKefuMessage.NEWS()

  .toUser("OPENID")

  .addArticle(article1)

  .addArticle(article2)

  .build();


5. 小结

使用比较多的是文本消息,本文给出示例,参考实现即可。

上一篇:知乎CTO李大海:谢邀,来分享下内容社区的AI架构搭建与应用


下一篇:通过 Feature Level 动态控制 SAP Spartacus 的页面显示