消息收发
客服会话过程由一条一条的消息组成,SDK中消息模型由 Message 类表示。
消息包含消息体,消息体由 MessageContent 类及其子类表示,不同类别的消息包含相应的消息体对象。
- 文字消息 MessageContentText
- 图片消息 MessageContentImage
- 音频消息 MessageContentAutio
- 图文消息 MessageContentRichText
- 菜单消息 MessageContentMenu
发送消息
常用消息类型的发送可以直接调用 BotLibClient 中的封装方法
文字消息
BotKitClient.getInstance().askQuestion("Hello world")
图片消息
// 生成临时文件
File imgFile = File.createTempFile("photo", ".jpg", getCacheDir());
......
BotKitClient.getInstance().askQuestionImage(imgFile);
音频消息
// 生成临时文件
File imgFile = File.createTempFile("record", ".mp3", getCacheDir());
......
BotKitClient.getInstance().askQuestionAudio(file);
接收消息
接收消消息监听器 BotLibClient.MessageListener 中的回调方法实现。
通过 contentType 属性可以判断消息类型,然后使用相应的消息体类进行解析。
@Override
public void onAppendMessage(Message message) {
switch (message.getContentType()) {
case Message.ContentTypeText:
MessageContentText contentText = (MessageContentText)message.getContent();
......
break;
case Message.ContentTypeImage:
MessageContentImage contentImage = (MessageContentImage)message.getContent();
......
break;
case Message.ContentTypeAudio:
MessageContentAudio contentAudio = (MessageContentAudio)message.getContent();
......
break;
case Message.ContentTypeMenu:
MessageContentMenu contentMenu = (MessageContentMenu)message.getContent();
......
break;
}
}