Skip to content
On this page

自定义 Markdown 消息 ​

发送 QQ 官方支持的自定义 Markdown 消息(客户端原生渲染),单聊与群聊无需申请模版。

本页是官方 Markdown 消息

若想把 Markdown 渲染成一张图片再发送,请使用 Markdown 生成的图片。 使用平台模版发送请查看 Markdown 模版。

Chain().markdown_content() ​

参数名类型释义默认值
contentstrMarkdown 文本内容
keyboardInlineKeyboard内嵌键盘(自定义按钮)None
keyboard_template_idstr内嵌键盘模版 ID,与 keyboard 互斥''
force_verify_image_resourcebool是否校验 Markdown 内图片转存结果;为 True 时转存失败将中断发送None
python
@bot.on_message(keywords='签到')
async def _(data: Message):
    return Chain(data).markdown_content('## 每日签到\n\n今日签到成功!获得 **50** 积分')

注意

  • Markdown 内的图片必须使用公网可访问的 URL。
  • 消息长度超出限制会返回错误码 40054007。

支持的语法(标题、加粗、斜体、删除线、链接、图片、列表、块引用、分割线等)详见 官方文档。

配合内嵌键盘 ​

传入 InlineKeyboard 即可附带按钮,用户点击后会触发 INTERACTION_CREATE 事件。

python
from amiyabot.builtin.messageChain.keyboard import InlineKeyboard

keyboard = InlineKeyboard()
keyboard.add_row().add_button(
    button='btn_signin',
    render_label='签到',
    render_style=1,
    action_type=2,
    action_data='/签到',
    action_enter=True,
)

@bot.on_message(keywords='菜单')
async def _(data: Message):
    return Chain(data).markdown_content('## 功能菜单\n\n点击下方按钮开始', keyboard=keyboard)

按钮回调需调用 API 回应,否则客户端会保持 loading:

python
@bot.on_event('INTERACTION_CREATE')
async def _(event: Event, instance: BotAdapterProtocol):
    await instance.api.put_interaction_response(event.data['id'], code=0)

相关文档 ​