尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

mtproto-core 实战:10 行代码打造自动发送消息的 Telegram 机器人

mtproto-core 实战:10 行代码打造自动发送消息的 Telegram 机器人 mtproto-core 实战10 行代码打造自动发送消息的 Telegram 机器人【免费下载链接】mtproto-coreTelegram API JS (MTProto) client library for Node.js and browser项目地址: https://gitcode.com/gh_mirrors/mt/mtproto-coremtproto-core 是一个开源的 Telegram API JSMTProto客户端库专为 Node.js 和浏览器设计让开发者无需深究复杂的 MTProto 加密协议就能用 JavaScript 直接调用 Telegram 官方 API。本文将以「自动发送消息的 Telegram 机器人」为实战目标带你用 10 行核心代码跑通「登录 → 发送消息」的完整链路即使你从未接触过 Telegram Bot 开发也能快速上手。为什么选择 mtproto-core 开发 Telegram 机器人很多新手做 Telegram 机器人会先想到 Bot API但 Bot API 只能操作机器人账号无法操作你自己的账号。mtproto-core 走的是另一条路它直接实现了 Telegram 官方 MTProto 协议具备以下硬核优势支持用户账号可以代替你本人收发消息非常适合自动提醒、群发、消息同步等场景双端兼容Node.js 环境下使用 TCP 与原生 crypto 模块浏览器环境则走 WebSocket见 envs/node/index.js 与 envs/browser/index.js加密全隐藏AES、RSA、DH 密钥交换等繁琐流程都在底层完成你只需面对高层的call()方法自动同步授权一次登录即可在所有数据中心DC间自动同步会话内置 2FA库内自带二次验证参数计算函数安全无忧。最贴心的是mtproto-core 当前支持 158 层 API scheme官方接口几乎都能直接调用。第一步获取 Telegram API ID 与 API Hash免费使用 mtproto-core 前你需要一组官方凭证api_id和api_hash。获取流程非常简单登录 Telegram 官方应用管理平台点击创建应用填写应用名称、平台等信息创建成功后页面会给出你的api_id数字和api_hash字符串。提示请像保管密码一样保管api_hash它相当于你的 API 密钥。拿到凭证后把它和手机号一起准备好下一步就能安装并初始化 mtproto-core 了。第二步快速安装 mtproto-core在项目目录下用 npm 或 yarn 一条命令即可完成安装npm install mtproto/core安装完成后在代码中引入并初始化客户端。注意需要指定storageOptions.path这是会话持久化文件的存放位置用于保存登录状态避免每次重启都要重新登录const MTProto require(mtproto/core); const mtproto new MTProto({ api_id: 你的api_id, api_hash: 你的api_hash, storageOptions: { path: ./session.json }, });这里的存储逻辑由 src/storage/index.js 实现Node 环境下默认使用 Configstore 持久化会话见 envs/node/get-local-storage.js。第三步10 行代码实现自动发送消息登录流程分为两步先请求验证码再提交验证码完成登录。首次运行后会话会保存在session.json之后无需重复登录。下面是核心代码// 1. 发送验证码到手机 await mtproto.call(auth.sendCode, { phone_number: 8613800000000, settings: { _: codeSettings }, }); // 2. 输入收到的验证码完成登录 const result await mtproto.call(auth.signIn, { phone_number: 8613800000000, phone_code_hash: 从sendCode返回中获取, phone_code: 验证码, }); // 3. 给指定用户自动发送消息 await mtproto.call(messages.sendMessage, { peer: { _: inputPeerUser, user_id: 123456, access_hash: 用户access_hash }, message: 你好这是 mtproto-core 自动发送的消息, random_id: Math.ceil(Math.random() * 1000000), });是的自动发送消息的核心其实只有 3 个call()。每个call(method, params)都会自动完成「构造请求 → 加密 → 发送 → 解密 → 返回结果」的完整 RPC 流程这部分实现可以查看 src/rpc/index.js你只需要关心业务参数即可。random_id是消息去重用的随机数建议每次发送都随机生成user_id与access_hash可以通过「查询联系人」或「读取消息事件」拿到。如果你不熟悉账号体系也可以先对「自己」发送user_id填自己的 ID 即可测试。进阶玩法让 mtproto-core 自动回复消息发送只是开始mtproto-core 还内置了更新事件监听器updates能让你的机器人实时接收新消息并自动回复形成闭环mtproto.updates.on(updateShortMessage, async ({ user_id, message }) { await mtproto.call(messages.sendMessage, { peer: { _: inputPeerUser, user_id, access_hash: 对方的access_hash }, message: 收到你的消息 message, random_id: Math.ceil(Math.random() * 1000000), }); });事件分发在 src/index.js 中通过 EventEmitter 实现服务端推送的任何更新新消息、群通知、状态变化都会被解析后转发出来。你可以基于此扩展出定时提醒机器人每天定时向自己或群聊发送待办事项消息同步助手把 A 渠道的消息自动转发到 Telegram自动应答客服收到关键词消息就自动回复预设内容。常见报错与解决办法新手最容易遇到以下几个问题提前了解能少踩坑报错场景原因与解决办法AUTH_KEY_UNREGISTERED会话失效删除session.json重新登录即可PHONE_CODE_INVALID验证码输错或已过期重新获取验证码FLOOD_WAIT请求过于频繁触发了限流等待提示的时间后再试SESSION_PASSWORD_NEEDED账号开启了两步验证需调用auth.checkPassword补全密码遇到FLOOD_WAIT这类限流错误时建议在循环发送逻辑中增加随机延时模拟真人操作节奏。小结用 mtproto-core 开发 Telegram 自动发送消息机器人核心链路就是「获取凭证 → 初始化客户端 → 登录 →messages.sendMessage」。它把 MTProto 协议的加密、握手、会话管理等复杂度全部封装起来让你用最少的代码实现用户级账号的自动化操作。无论是个人定时提醒还是企业级消息分发这 10 行代码就是你的起点现在就动手试试吧【免费下载链接】mtproto-coreTelegram API JS (MTProto) client library for Node.js and browser项目地址: https://gitcode.com/gh_mirrors/mt/mtproto-core创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表