收发单聊消息
QQ 单聊消息通过 C2C_MESSAGE_CREATE 事件送达。
先做什么
- 在平台开通所需能力并配置事件订阅。WebSocket 的普通单聊消息使用
GROUP_AND_C2C_EVENT。 - 接收单聊消息,从
ctx.Message()读取用户、正文和附件。 - 发送单聊消息,直接使用
ctx.ReplyText或组合消息构造器。
最小处理函数
将 HandlePrivate 传给 bot.OnMessage(message.C2C_MESSAGE_CREATE, HandlePrivate)。导入及注册方式见接收单聊消息。
go
package guide
import "github.com/ProgramCX/GoQQBot/shared/types"
func HandlePrivate(ctx *types.Context) error {
return ctx.ReplyText("已收到:" + ctx.Text())
}场景限制
按发送场景选择接口。发送普通图片、视频或语音前,先上传富媒体,再用 file_info 发送。Markdown 图片素材使用独立的上传流程。
注意事项
- 频道私信使用
DIRECT_MESSAGE_CREATE。频道私信与 QQ 单聊的用户标识、发送路径各不相同。 user_openid是当前机器人取得的单聊标识。普通 QQ 号码和群聊的member_openid无法替代它。- QQ 检查回复来源的有效期和消息次数。主动消息(proactive message)和唤醒消息还受资格及配额限制。
- 输入状态和流式消息仅适用于单聊。