本文按 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 并回车;输入内容不会显示。
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 的命令、截图、快捷指令或错误日志。
