Skip to content

sendMessageDraft

向指定用户的私聊输入框推送一段草稿文本。这是 SafeW 的扩展方法,Telegram Bot API 中不存在。

sendMessage 不同,本方法不会创建真实消息:草稿以实时更新的形式下发,客户端收到后在该用户与 Bot 私聊的输入框中预填这段文本,由用户决定是否发送。草稿不落库、不产生 message_id

请求

POST /:token/sendMessageDraft

参数

参数类型必填描述
chat_idInteger/String目标用户的数字 ID(或数字字符串)。仅支持私聊用户,不支持群组、频道或 @username 形式
draft_idInteger草稿的唯一标识符(随机 ID),必须非 0。客户端用它对同一草稿的多次推送去重
textString草稿文本内容,1-4096 个字符
parse_modeString文本解析模式,支持 MarkdownV2MarkdownHTML,详见消息格式化
entitiesMessageEntity[]草稿文本中的特殊实体列表,可替代 parse_mode 使用。同时提供时以 parse_mode 为准

使用限制

  • 仅限私聊:chat_id 必须是用户 ID,不能是 Bot、群组或频道。
  • 目标用户必须与 Bot 存在会话且给 Bot 发送过消息,否则无法推送。
  • 不能向已注销或被限制发言的账号推送。
  • 草稿是瞬时更新,不产生消息记录,也不支持 reply_markup

响应

成功时返回 Boolean 值 true

json
{
  "ok": true,
  "result": true
}

错误码

错误码描述
400请求参数错误,见下方常见错误描述
401Token 无效或已过期
500服务器内部错误

常见错误描述

description含义
RANDOM_ID_INVALIDdraft_id 缺失或为 0
MESSAGE_EMPTYtext 为空
MESSAGE_TOO_LONGtext 超过 4096 个字符
TEXTDRAFT_PEER_INVALIDchat_id 不是用户 ID(如群组、频道或字符串用户名)
USER_IS_BOT目标是另一个 Bot
USER_DELETED目标账号已注销或被限制
CHAT_WRITE_FORBIDDEN目标用户从未给 Bot 发过消息,无法推送草稿

示例

cURL

bash
curl -X POST "https://api.safew.bot/<token>/sendMessageDraft" \
  -H "Content-Type: application/json" \
  -d '{
    "chat_id": 987654321,
    "draft_id": 1720000000123,
    "text": "帮我查询今天的订单"
  }'

带格式的草稿

bash
curl -X POST "https://api.safew.bot/<token>/sendMessageDraft" \
  -H "Content-Type: application/json" \
  -d '{
    "chat_id": 987654321,
    "draft_id": 1720000000124,
    "text": "查询订单 <b>NO.2024001</b>",
    "parse_mode": "HTML"
  }'