# 发送模板消息

注意

  • 要求操作人在该子频道具有发送消息模板消息 的权限。
  • 调用前需要先申请消息模板,这一步会得到一个模板 id,在请求时填在 ark.template_id 上
  • 发送成功之后,会触发一个创建消息的事件。
  • 可用模板参考可用模板
  • 如果发送的消息中包含链接(网页、图片、视频链接等),需要提前在机器人管理端 (opens new window)报备,操作流程:操作路径为:“开发设置” -> “消息 URL 配置”

# 使用示例

需要关注ark字段的使用。

import botpy
from botpy.message import Message

class MyClient(botpy.Client):
    async def on_at_message_create(self, message: Message):
        await self.api.post_message(channel_id="xxxx", content="xxx", msg_id="xxxx", embed=embed)

intents = botpy.Intents(public_guild_messages=True)
client = MyClient(intents=intents)
client.run(appid={appid}, token={token})
1
2
3
4
5
6
7
8
9
10

# 参数说明

参数 必填 类型 说明
channelID string 子频道 ID
content string 消息内容,文本内容,支持内嵌格式
embed Embed embed 消息,一种特殊的 ark
ark Ark ark 消息
image string 图片 url 地址
msg_id string 要回复的消息 id。带了 msg_id 视为被动回复消息,否则视为主动推送消息

# Embed

字段名 类型 描述
title string 标题
description string 描述
prompt string 消息弹窗内容
timestamp string 消息创建时间
fields EmbedField[] 消息创建时间,是个 ISO8601 timestamp 字符串,例:"2021-11-23T15:16:48+08:00"

# EmbedField

字段名 类型 描述
name string 字段名
value string 字段值

# Ark

字段名 类型 描述
template_id number ark 模板 id(需要先申请)
kv AkrKv[] kv 值列表

# ArkKv

字段名 类型 描述
key string key
value string value
obj ArkObj[] ark obj 类型的列表

# ArkObj

字段名 类型 描述
obj_kv ArkObjKv[] ark objkv 列表

# ArkObjKv

字段名 类型 描述
key string key
value string value

# 参数示例

假设模板如下,其中#META_LIST#类型为数组、#META_URL#类型为 URL、其他为文本。

{
  "app": "com.tencent.miniapp",
  "view": "detail",
  "ver": "0.0.0.1",
  "desc": "#DESC#",
  "prompt": "[QQ小程序]#PROMPT#",
  "meta": {
    "detail": {
      "title": "#TITLE#",
      "desc": "#META_DESC#",
      "url": "#META_URL#",
      "list": "#META_LIST#"
    }
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

请求体中的 ark 内容为

{
  "ark": {
    "template_id": 1,
    "kv": [
      {
        "key": "#DESC#",
        "value": "机器人订阅消息"
      },
      {
        "key": "#PROMPT#",
        "value": "XX机器人"
      },
      {
        "key": "#TITLE#",
        "value": "XX机器人消息"
      },
      {
        "key": "#META_URL#",
        "value": "http://domain.com/"
      },
      {
        "key": "#META_LIST#",
        "obj": [
          {
            "obj_kv": [
              {
                "key": "name",
                "value": "aaa"
              },
              {
                "key": "age",
                "value": "3"
              }
            ]
          },
          {
            "obj_kv": [
              {
                "key": "name",
                "value": "bbb"
              },
              {
                "key": "age",
                "value": "4"
              }
            ]
          }
        ]
      }
    ]
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52

则实际下发的 json 为

{
  "app": "com.tencent.miniapp",
  "view": "detail",
  "ver": "0.0.0.1",
  "desc": "机器人订阅消息",
  "prompt": "[QQ小程序]XX机器人",
  "meta": {
    "detail": {
      "title": "XX机器人消息",
      "url": "http://domain.com/",
      "list": [
        { "name": "aaa", "age": "3" },
        { "name": "bbb", "age": "4" }
      ]
    }
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

# 返回说明

返回Message 对象。

# Message

字段名 类型 描述
id string 消息 id
channel_id string 子频道 ID
guild_id string 频道 ID
content string 消息内容
timestamp string 消息创建时间,是个 iISO8601 timestamp 字符串,例:"2021-11-23T15:16:48+08:00"
edited_timestamp string 消息编辑时间,是个 iISO8601 timestamp 字符串,例:"2021-11-23T15:16:48+08:00"
mention_everyone boolean 是否是@全员消息
author User 消息创建者
member Member 消息创建者的 member 信息

# User

字段名 类型 描述
id string 用户 ID
username string 用户名
bot boolean 是否是机器人

# Member

字段名 类型 描述
roles string[] 用户在频道内的身份组 ID,默认值可参考DefaultRoleIDs
joined_at string 用户加入频道的时间,是个 ISO8601 timestamp 字符串,例:"2021-11-23T15:16:48+08:00"

# DefaultRoleIDs

系统默认生成下列身份组 ID。

身份组 ID 默认值 描述
1 全体成员
2 管理员
4 群主/创建者
5 子频道管理员

# 返回示例

{
  "id": "101234567890abcdef",
  "channel_id": "10001",
  "guild_id": "6400000001",
  "content": "<@!1234>hello world",
  "timestamp": "2021-05-13T14:45:45+08:00",
  "tts": false,
  "mention_everyone": false,
  "author": {
    "id": "12345",
    "username": "abc",
    "avatar": "",
    "bot": true
  },
  "pinned": false,
  "type": 0,
  "flags": 0
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
手机QQ扫码
开发者社区
加入官方频道开发者社区