這三個方法承載了大多數 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。
