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();
圖檔消息:
.IMAGE()
.mediaId("MEDIA_ID")
語音消息:
WxMpKefuMessage.VOICE()
視訊消息:
WxMpKefuMessage.VIDEO()
.title("TITLE")
.thumbMediaId("MEDIA_ID")
.description("DESCRIPTION")
音樂消息:
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. 小結
使用比較多的是文本消息,本文給出示例,參考實作即可。