sendMessageDraft
向指定用户的私聊输入框推送一段草稿文本。这是 SafeW 的扩展方法,Telegram Bot API 中不存在。
与 sendMessage 不同,本方法不会创建真实消息:草稿以实时更新的形式下发,客户端收到后在该用户与 Bot 私聊的输入框中预填这段文本,由用户决定是否发送。草稿不落库、不产生 message_id。
请求
POST /:token/sendMessageDraft
参数
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
| chat_id | Integer/String | 是 | 目标用户的数字 ID(或数字字符串)。仅支持私聊用户,不支持群组、频道或 @username 形式 |
| draft_id | Integer | 是 | 草稿的唯一标识符(随机 ID),必须非 0。客户端用它对同一草稿的多次推送去重 |
| text | String | 是 | 草稿文本内容,1-4096 个字符 |
| parse_mode | String | 否 | 文本解析模式,支持 MarkdownV2、Markdown、HTML,详见消息格式化 |
| entities | MessageEntity[] | 否 | 草稿文本中的特殊实体列表,可替代 parse_mode 使用。同时提供时以 parse_mode 为准 |
使用限制
- 仅限私聊:
chat_id必须是用户 ID,不能是 Bot、群组或频道。 - 目标用户必须与 Bot 存在会话且给 Bot 发送过消息,否则无法推送。
- 不能向已注销或被限制发言的账号推送。
- 草稿是瞬时更新,不产生消息记录,也不支持
reply_markup。
响应
成功时返回 Boolean 值 true。
json
{
"ok": true,
"result": true
}错误码
| 错误码 | 描述 |
|---|---|
| 400 | 请求参数错误,见下方常见错误描述 |
| 401 | Token 无效或已过期 |
| 500 | 服务器内部错误 |
常见错误描述
| description | 含义 |
|---|---|
| RANDOM_ID_INVALID | draft_id 缺失或为 0 |
| MESSAGE_EMPTY | text 为空 |
| MESSAGE_TOO_LONG | text 超过 4096 个字符 |
| TEXTDRAFT_PEER_INVALID | chat_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"
}'