这三个方法承载了大多数 MPChat Bot 早期接入。其余方法遵循同一信封;字段见方法矩阵与官方参考。
总览
getMe 验证身份,getUpdates 拿 chat_id,sendMessage 发送。sendMessage 属 MP 差异:reply_markup 支持内联按钮(url / web_app / callback_data / copy_text)与 Reply Keyboard;MiniApp 客户端回流仍不可用。
getMe
GET 或 POST,无 body。适合做健康检查,无副作用。
curl --silent --show-error "https://call.mp.net/bot/getMe" \
-H "Authorization: Bearer ${MPCHAT_BOT_TOKEN}"
{ "ok": true, "result": { "id": 123456789, "is_bot": true, "username": "my_mpbot" } }401 表示 token 无效或已 revoke。
getUpdates
请求体字段:offset、limit(1-100)、timeout(0-50)、allowed_updates。
{ "offset": 0, "limit": 50, "timeout": 30, "allowed_updates": ["message", "callback_query"] }{
"ok": true,
"result": [{
"update_id": 10001,
"message": { "message_id": 42, "chat": { "id": 987654321, "type": "private" }, "text": "你好" }
}]
}空的 result: [] 表示没有新消息或该批已被消费;409 表示已启用 Webhook。
sendMessage
字段 | 必填 | 说明 |
chat_id | 是 | 整数或十进制字符串。 |
text | 是 | 消息正文。 |
parse_mode | 否 | Markdown 或 HTML。 |
reply_to_message_id | 否 | 回复指定消息。 |
entities | 否 | 结构化文本实体,包括受支持的提及。省略时服务端可从正文识别提及。 |
link_preview_options | 否 | 将 is_disabled 设为 true 可关闭两类预览卡片。 |
reply_markup | 否 | InlineKeyboardMarkup(url / web_app / callback_data / copy_text)或 ReplyKeyboardMarkup / Remove / ForceReply。 |
向群聊发送 MiniApp 按钮
普通内联 web_app 按钮用于私聊。用 sendMessage 时,已加入目标群或超级群的 Bot 可以发送一个 MiniApp 按钮。内联键盘必须恰好一行、一个按钮,且按钮只含 text 与 web_app。请使用当前 Bot 已启用 MiniApp 的登记入口 URL 或 MPChat 直链。
{
"chat_id": "987654321",
"text": "Open Demo MiniApp",
"reply_markup": {
"inline_keyboard": [[
{ "text": "Open", "web_app": { "url": "https://mp.net/MyBot/demo" } }
]]
}
}此示例保留 MiniApp 分享卡片。若只需发送不带卡片的消息,可将 link_preview_options.is_disabled 设为 true,普通链接预览也会同时关闭。
服务端用 web_app.url 解析当前 Bot 的 MiniApp;无需传 miniapp_id。完整 web_app_data / sendData / answerWebAppQuery 回流当前不支持。
相关文章
保存返回的 message_id 供后续 editMessageText 使用。deleteMessage 为 L3 DocOnly。
