从 Telegram 迁移请先读这篇。路径形态相似,但若干行为不同。状态以 core.mp.net/bots 为准。
总览
MPChat Bot API 沿用 Telegram 风格的方法,但不是完整复刻。以下是会让「无脑迁移」失败的差异。
file_id 不可复用
已发送媒体的 file_id 不能复用。sendPhoto、sendVideo、sendDocument、setChatPhoto 接受公网 URL 或 multipart 上传。迁移时改用 URL 或自有存储。
banChatMember 为禁言非踢人
banChatMember 将成员设为 restricted(禁言),不移除出群。until_date=0 或省略表示永久,直至 unbanChatMember。风险 L3,DocOnly。
Bot 不能主动发起会话
用户须先建立上下文。向无会话的 chat_id 发送可能返回 400。流程:用户发消息 → getUpdates 取 chat_id → sendMessage。
sendMessage 按钮与 MiniApp
sendMessage 属 MP 差异:reply_markup 支持内联 url / web_app / callback_data / copy_text 与 Reply Keyboard。消息 callback 走 answerCallbackQuery。MiniApp 客户端回流(web_app_data / sendData / answerWebAppQuery)仍不可用。
速查表
话题 | Telegram 预期 | MP 现状 |
媒体复用 | file_id 可复用 | 不支持;URL / multipart |
封禁成员 | 踢出群 | 禁言,仍在群内 |
主动私聊 | 部分场景可推送 | 用户须先建立会话 |
消息 callback 按钮 | callback_data + answerCallbackQuery | 已支持(300 秒窗口;无 url/cache_time) |
sendMessage 打开 MiniApp | 完整 MiniApp 回流 | web_app 打开 MiniApp;另支持 url / copy_text |
MiniApp 客户端回流 | web_app_data / sendData / answerWebAppQuery | 不支持 |
菜单按钮 vs Reply Keyboard | 左右独立控件 | 同;setChatMenuButton 不驱动底部键盘 |
sendPoll / sendLocation / sendChatAction | 可用 | HTTP 501 |
相关文章
大量 Telegram 方法在 MP 中并未暴露。依赖某方法前请先在方法矩阵确认可用性。
