本文依 Windows/macOS 分步驟說明首次除錯。熟悉終端機、希望直接使用 curl 或 Node.js 範例時,可選擇另一篇接入範例,無需兩篇依序完成。 Bot API 接入範例:用 curl 或 Node.js 收發測試訊息
MPChat 目前僅提供 Android 和 iOS 用戶端。Windows PowerShell 和 macOS 終端機用於 API 除錯;傳送測試訊息和查看回覆仍在手機上的 MPChat 中完成。
傳送第一則 Bot 回覆
先在手機上傳送訊息,選擇下方一種電腦操作方式,再回到手機確認回覆。無需建立程式碼專案。
裝置 | 用途 |
Android / iOS | MPChat:傳送測試訊息、查看回覆 |
Windows | PowerShell:呼叫 Bot API |
macOS | 終端機 + curl:呼叫 Bot API |
1. 準備測試 Bot,在手機上發訊息
在手機上開啟 MPChat → 通訊錄 → 機器人,進入 BotFather。建立一個專用測試 Bot,或選擇你已管理的測試 Bot,然後複製它的 token。詳見BotFather 取得 token 的步驟。
開啟與測試 Bot 的私聊,傳送
mpchat-quickstart。使用未啟用 Webhook、也沒有其他程序在輪詢的測試 Bot。
此時沒有立即收到回覆是正常的;接下來透過 API 讀取這則訊息並傳送回覆。
2. 選擇 Windows 或 macOS 操作
下方兩種方式擇一,在同一個視窗中依序執行指令。若之後換另一種方式測試,請先重新傳送測試訊息。
Windows · PowerShell
從 Windows 開始功能表搜尋並開啟 PowerShell。執行第一段指令,依提示輸入測試 token;輸入內容不會顯示。
A. 使用 getMe 驗證 token。
$secret = Read-Host "Test bot token" -AsSecureString
$token = [System.Net.NetworkCredential]::new("", $secret).Password
$base = "https://call.mp.net/bot/bot$token"
Invoke-RestMethod -Method Get -Uri "$base/getMe" |
ConvertTo-Json -Depth 20
確認 ok 為 true,且 result.username 與手機上開啟的 Bot 一致後再繼續。任何一步失敗時,先依下方排查說明處理。
B. 使用 getUpdates 取得測試訊息。
$updates = Invoke-RestMethod -Method Post `
-Uri "$base/getUpdates" `
-ContentType "application/json" `
-Body '{"timeout":10,"limit":50,"allowed_updates":["message"]}'
$updates | ConvertTo-Json -Depth 20
在 result 中找到 message.text 為 mpchat-quickstart、message.chat.type 為 private 的訊息,複製該則的 message.chat.id。這裡需要會話 ID,不是訊息 ID 或 Bot ID。完整複製數字,不要四捨五入或轉換成科學記號。若多個會話都相符,先確認自己的測試會話再傳送。
C. 使用 sendMessage 傳送回覆。依提示輸入剛複製的會話 ID。
$chatId = Read-Host "Paste message.chat.id"
if ($chatId -notmatch '^[0-9]+$') {
throw "Enter the private chat ID as decimal digits."
}
$body = @{
chat_id = $chatId
text = "Hello from MPChat Bot."
} | ConvertTo-Json -Compress
Invoke-RestMethod -Method Post `
-Uri "$base/sendMessage" `
-ContentType "application/json" `
-Body $body |
ConvertTo-Json -Depth 20
macOS · Terminal + curl
按 Command + 空白鍵,搜尋「終端機」或「Terminal」並開啟。以下指令適用於 zsh 或 Bash。依提示輸入測試 token 並按 Return;輸入內容不會顯示。
A. 使用 getMe 驗證 token。
printf 'Test bot token: '
read -r -s MPCHAT_BOT_TOKEN
printf '\n'
curl -sS "https://call.mp.net/bot/bot${MPCHAT_BOT_TOKEN}/getMe"
確認 ok 為 true,且 result.username 與手機上開啟的 Bot 一致後再繼續。任何一步失敗時,先依下方排查說明處理。
B. 使用 getUpdates 取得測試訊息。
curl -sS -X POST \
"https://call.mp.net/bot/bot${MPCHAT_BOT_TOKEN}/getUpdates" \
-H "Content-Type: application/json" \
-d '{"timeout":10,"limit":50,"allowed_updates":["message"]}'
在 result 中找到 message.text 為 mpchat-quickstart、message.chat.type 為 private 的訊息,複製該則的 message.chat.id。這裡需要會話 ID,不是訊息 ID 或 Bot ID。完整複製數字,不要四捨五入或轉換成科學記號。若多個會話都相符,先確認自己的測試會話再傳送。
C. 使用 sendMessage 傳送回覆。依提示輸入剛複製的會話 ID。
printf 'Paste message.chat.id: '
read -r MPCHAT_CHAT_ID
if [[ "$MPCHAT_CHAT_ID" =~ ^[0-9]+$ ]]; then
curl -sS -X POST \
"https://call.mp.net/bot/bot${MPCHAT_BOT_TOKEN}/sendMessage" \
-H "Content-Type: application/json" \
-d "{\"chat_id\":\"${MPCHAT_CHAT_ID}\",\"text\":\"Hello from MPChat Bot.\"}"
else
printf 'Enter the private chat ID as decimal digits.\n'
fi
3. 回到手機確認回覆
回到手機上與同一個 Bot 的私聊。看到 Hello from MPChat Bot. 即完成測試;傳送成功的 API 回應也會包含 ok: true 和訊息 ID。
這裡傳送的是一次測試回覆。要持續自動回覆,還需編寫並執行訊息處理程式,透過輪詢或 Webhook 接收新訊息。
沒有電腦,也可以測試嗎?
可以。手機上的 MPChat 仍用於聊天;Android 可使用 HTTP Shortcuts,iOS 可使用捷徑中的「取得 URL 內容」傳送 API 請求。這些是獨立的請求工具,不是 MPChat 內建功能。
API 順序相同:GET getMe、POST getUpdates、POST sendMessage。設定時使用上方範例中的 URL 和 JSON 內文,不要將整段命令列貼成請求。token 僅供自己使用,不要分享包含 token 的捷徑。
遇到問題時
401。核對 token 是否屬於測試 Bot、是否仍然有效。
結果為空或沒有相符訊息。重新傳送
mpchat-quickstart。getUpdates成功時只消費本次回應實際傳回的更新。409。該 Bot 已啟用 Webhook,請改用未啟用 Webhook 的獨立測試 Bot。
sendMessage 回傳 400。使用測試會話中的
message.chat.id,以十進位字串傳入。
若傳送成功卻看不到回覆,核對 Bot 使用者名稱和會話 ID,確認查看的是對應的私聊。
token 相當於控制 Bot 的憑證。請勿分享包含 token 的指令、截圖、捷徑或錯誤日誌。
