跳至主要內容

核心 API 參數詳解:getMe、getUpdates、sendMessage

getMe、getUpdates、sendMessage 的參數級詳解,含 reply_markup 內嵌按鈕、底部鍵盤與 MiniApp 入口。

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

是否回答了您的問題?