1. 首页
  2. API 文档
  3. 消息与媒体
  4. grab_red_packet

grab_red_packet

  • 发布于 2026-08-16
  • 13 次阅读

领取群消息中 red_packet 消息段对应的 QQ 红包。

调用

const redPacket = event.message.find(segment => segment.type === 'red_packet')
const info = await api.get_red_packet_info(
  event.self_id,
  event.group_id,
  event.sender.user_id,
  redPacket.data,
)
const result = await api.grab_red_packet(
  event.self_id,
  event.group_id,
  event.sender.user_id,
  redPacket.data,
  info.pre_grap_token,
)

也可以直接把完整的 red_packet 消息段作为第 4 个参数传入,官方 SDK 会自动读取其中的 data

pre_grap_tokenget_red_packet_info 返回,位于响应对象顶层。正式领取会将其作为 action 参数顶层的 pre_grap_token 发送。

Bot 的 skeytenpay.com PsKey、昵称、设备指纹、协议 AppID 和红包加密上下文均由后端自动获取。

参数

参数 类型 必填 说明
self_id number 在线 Bot QQ 号
group_id number 红包所在群号
sender_uin number 红包发送人 QQ 号
red_packet object 收到的 red_packet 消息段 data
red_packet.title string 红包标题
red_packet.listid string 红包列表 ID
red_packet.authkey string 红包鉴权串
red_packet.channel number 红包渠道,缺省为 0
red_packet.pay_flag number 红包支付标记,取自收到的 red_packet 消息段
red_packet.hb_from number 红包来源标记,取自收到的 red_packet 消息段
pre_grap_token string get_red_packet_info 返回对象顶层的预领取 token

原始 action 参数

未使用官方 SDK 时,red_packet 必须作为对象放在 params 内,pre_grap_token 放在 params 顶层:

{
  "action": "grab_red_packet",
  "params": {
    "self_id": 644691423,
    "group_id": 714169244,
    "sender_uin": 51974055,
    "red_packet": {
      "title": "恭喜发财",
      "listid": "10000448012608253500114336737900",
      "authkey": "45c7afde0cb06eed0198c763b46a580a",
      "channel": 1,
      "pay_flag": 0,
      "hb_from": 0
    },
    "pre_grap_token": "get_red_packet_info 返回的 pre_grap_token"
  }
}

请直接使用收到的红包消息段数据,不要自行拆分或重新生成 listidauthkey。官方 SDK 会兼容尚未更新的框架版本。

返回值

返回 QQ 红包服务解密后的领取结果 JSON 对象。