返回 code = 0 就代表发送成功吗?
不代表。它仅表示请求已被接受。发送后请通过拉取消息复核最终结果;不能仅凭响应码更新为已发送。
发送文本与媒体,查询消息、群发记录和处理结果。 本页列出此分组全部 24 个 POST 接口。
分页拉取消息。首次传 syncKey: 0,之后传上一页返回的 syncKey,直到 isEnd 为 true。
/qingluan/api/message/sync向指定会话发送一条文本。返回的 data.id 就是撤回时要用的 serverMsgId。
/qingluan/api/message/sendText发送富文本。content 是数组,每段形如 {type, text}。目前只有 type: 0(纯文字段)可用,其他取值会被拒绝。
/qingluan/api/message/sendRichText发送语音。没有专门的语音上传接口:先调「上传文件」,把返回的 data 整体作为 content,再补一个 voiceTime(秒)。
/qingluan/api/message/sendVoice发送图片。先调「上传图片」,把返回的 data 整体作为 content 传入 —— 两边字段逐个对应,不需要自己拼。
/qingluan/api/message/sendImage发送视频。先调「上传视频」,把返回的 data 整体作为 content 传入。
/qingluan/api/message/sendVideo发送文件。先调「上传文件」,把返回的 data 整体作为 content 传入。
/qingluan/api/message/sendFile发送大文件。与「上传大文件」配合使用:文件 ID 取自上传完成后推送的 BigFileUploadCompleted 回调事件(content.id,带 *1* 前缀),普通「上传文件」返回的 ID 会被拒绝。
/qingluan/api/message/sendBigFile发送链接卡片。url 是落地地址,imageUrl 是卡片缩略图。
/qingluan/api/message/sendLink发送名片。cardUserId 在请求体顶层,不在 content 里。
/qingluan/api/message/sendNameCard发送 GIF。同样先调「上传图片」(GIF 也走它),返回的 data 整体作为 content。
/qingluan/api/message/sendGif发送位置。经纬度是浮点数,注意不要当成整数传。
/qingluan/api/message/sendLocation撤回消息。serverMsgId 取自发送接口返回的 data.id。
/qingluan/api/message/revoke发送小程序卡片。需要小程序 username(gh_ 开头)、appId、path 与封面图。
/qingluan/api/message/sendMiniProgram获取群发助手的素材库列表。注意这是群发素材,不是个人收藏消息。
/qingluan/api/message/getMaterialList群发助手。contentList[].content 是数组,如 [{"type":0,"text":"内容"}];receiverList 填接收人 ID。
/qingluan/api/message/groupSend获取待发送的群发任务列表。返回的 list[].id 供 groupSendPending 使用。
/qingluan/api/message/getPendingGroupSendList发送待发送的群发任务。id 取自「查询待发群发」。
/qingluan/api/message/groupSendPending获取个人群发历史记录。
/qingluan/api/message/getGroupSendRecord把一条群消息置顶。请求体是整条消息对象本身(发送接口返回的 data 可直接使用),不要再包一层。
/qingluan/api/message/roomMessageTopAdd取消群消息置顶。topId 从「获取群置顶消息」的 all_msg[].topId 取 —— 顶层字段里没有它。
/qingluan/api/message/roomMessageTopDel获取群里的置顶消息。返回 creatorId / msgContent / updateTime;有置顶项时还会带 all_msg 数组,topId 在里面。
/qingluan/api/message/roomMessageTopGetList语音转文字第一步:用语音消息的 msgId 换取转写任务 ID。语音消息在消息同步结果里的 contentType 是 16。返回的 queryIntervalMs 是建议的轮询间隔。
/qingluan/api/message/voiceToTextGetId语音转文字第二步:用上一步的 voiceId 查询结果,文字在 data.text,isEnd 表示是否已转写完毕。
/qingluan/api/message/voiceToTextQuery不代表。它仅表示请求已被接受。发送后请通过拉取消息复核最终结果;不能仅凭响应码更新为已发送。
回调只包含入站事件,自己通过接口发出的消息不会触发回调。发送结果使用拉取消息确认。
请先按媒体上传与发送流程准备资源,将上传返回的 data 按对应接口说明带入 content。
使用原始完整整数值,避免经过 JavaScript Number 的近似转换。参见大整数处理指引。