消息方法
警告
本文档适用于 WAuxiliary 最新版本
新手先看
talker表示目标会话 ID。- 私聊时,
talker一般是对方wxid。 - 群聊时,
talker一般是xxx@chatroom。 - 如果你当前就在聊天页面,通常可以直接用
getTargetTalker()。 - 图片、语音、视频发送方法里的路径,都要求是本地文件路径。
发送文本消息
beanshell
void sendText(String talker, String content);
void sendText(String talker, String content, Consumer<Long> callback);talker:目标会话 IDcontent:文本内容callback:发送完成回调,参数为服务端消息 ID,失败时可能为null
示例
beanshell
String talker = getTargetTalker();
sendText(talker, "你好");
sendText(talker, "[AtWx=wxid_123] 你好");
sendText(talker, "[AtWx=notify@all] 请注意");
sendText(talker, "hello", svrId -> {
log("svrId = " + svrId);
});发送语音消息
beanshell
void sendVoice(String talker, String sendPath);
void sendVoice(String talker, String sendPath, int duration);sendPath:本地语音文件路径duration:语音时长,单位秒
示例
beanshell
sendVoice(getTargetTalker(), cacheDir + "/voice.silk", 3);发送图片消息/图片引用
beanshell
void sendImage(String talker, String sendPath);
void sendImage(String talker, String sendPath, long msgId);
void sendImage(String talker, String sendPath, String appId);sendPath:本地图片路径msgId:引用消息 IDappId:应用标识
示例
beanshell
sendImage(getTargetTalker(), cacheDir + "/demo.jpg");发送视频消息
beanshell
void sendVideo(String talker, String sendPath);sendPath:本地视频路径
发送表情消息/表情引用
beanshell
void sendEmoji(String talker, String sendPath);
void sendEmoji(String talker, String sendPath, long msgId);sendPath:表情文件路径msgId:引用消息 ID
发送拍一拍
beanshell
void sendPat(String talker, String pattedUser);pattedUser:被拍对象wxid
发送分享名片
beanshell
void sendShareCard(String talker, String wxid);wxid:要分享的联系人wxid
发送位置消息
beanshell
void sendLocation(String talker, String poiName, String label, String x, String y, String scale);
void sendLocation(String talker, JSONObject jsonObj);poiName:地点名称label:位置描述x:经度y:纬度scale:缩放级别jsonObj:可包含poiName、label、x、y、scale
示例
beanshell
sendLocation(getTargetTalker(), "测试地点", "测试描述", "113.3245", "23.0999", "16");发送密文消息
beanshell
void sendCipherMsg(String talker, String title, String content);发送小程序消息
beanshell
void sendAppBrandMsg(String talker, String title, String pagePath, String ghName);pagePath:小程序页面路径ghName:小程序账号
发送接龙消息
beanshell
void sendNoteMsg(String talker, String content);发送文本引用
beanshell
void sendQuoteMsg(String talker, String content, long msgId);msgId:引用消息 ID
示例
beanshell
long msgId = 123456L;
sendQuoteMsg(getTargetTalker(), "这是引用回复", msgId);撤回指定消息
beanshell
void revokeMsg(long msgId);msgId:要撤回的消息 ID
插入系统消息
beanshell
long insertSystemMsg(String talker, String content, long createTime);createTime:消息时间戳,通常可传System.currentTimeMillis()- 返回值:插入后的消息 ID
示例
beanshell
long msgId = insertSystemMsg(getTargetTalker(), "处理中...", System.currentTimeMillis());
log("system msgId = " + msgId);查询历史消息
beanshell
List<MsgInfoBean> queryHistoryMsg(String talker, long startTime, boolean isAsc, int count);startTime:起始时间戳isAsc:是否按时间正序查询count:查询条数- 返回值:历史消息列表
示例
beanshell
var list = queryHistoryMsg(getTargetTalker(), 0L, true, 10);
log("history size = " + list.size());下载图片
beanshell
void downloadImg(String md5, String cdnUrl, String aesKey, String savePath);
void downloadImg(MsgInfoBean.ImageMsg imageMsg, String savePath);savePath:保存路径- 第二种写法可直接传消息对象中的图片信息