很多安卓进阶用户想把手上的自动化工具 Tasker 和 TG 机器人连接起来,实现「手机状态推送到 TG」或「在 TG 里发指令控制手机」。本文给出可落地的思路与步骤,先讲结论:核心是 Tasker 通过 HTTP 请求调用 TG Bot API,发送消息用 sendMessage 接口,接收指令则需轮询 getUpdates 或借助中间服务。下面分场景说明。
一、先创建 TG 机器人并拿到 Token
在 TG 客户端中搜索 BotFather(官方机器人管理账号),按提示创建新机器人,获得一串 Bot Token。这个 Token 相当于机器人密码,务必妥善保管,不要直接写在公开分享的任务配置里。创建后,先给自己或某个群组发一条测试消息,确认机器人可用。
关键概念:chat_id
机器人发消息必须知道目标会话的 chat_id。可以先让机器人接收一条消息,再通过 getUpdates 接口查看返回的 chat_id。个人会话的 chat_id 通常为正数,群组为负数。拿到后记下来,Tasker 发消息时要用。
二、Tasker 向 TG 发送通知(单向推送)
这是最常见、也最简单的用法:手机电量低、收到短信、到达某地点时,让 Tasker 自动发一条 TG 消息。
- 在 Tasker 中新建任务,添加动作「网络 → HTTP 请求」。
- 方法选 POST,URL 填
https://api.telegram.org/bot<Token>/sendMessage,其中 <Token> 替换为你的机器人 Token。 - 请求体类型选 JSON 或表单,字段包括 chat_id 和 text。text 可用 Tasker 变量拼接,例如「电量仅剩 %BATT」。
- 保存后手动运行一次,到 TG 里查看是否收到消息。
注意:TG Bot API 对消息频率有限制,短时间内大量推送可能被限流,建议合并通知或加延时。
三、在 TG 里发指令控制 Tasker(双向交互)
反向控制稍复杂。TG 机器人本身不能主动向 Tasker 推送,Tasker 需要定期向 TG 查询新消息。
- 轮询方案:Tasker 定时触发 HTTP 请求调用 getUpdates,解析返回 JSON 中的消息文本,用「如果」条件匹配关键词,再执行对应任务。优点是纯 Tasker 可实现;缺点是耗电、有延迟,且需处理 offset 避免重复处理。
- 中间服务方案:用自建脚本或第三方自动化平台接收 TG 的 Webhook,再通过局域网或推送通道通知 Tasker。更实时,但需要额外维护,适合有服务器经验的用户。
无论哪种方案,都建议只允许自己的 chat_id 触发指令,在 Tasker 中先判断来源,避免他人误操作。
四、常见问题与注意事项
1. 请求失败怎么办?
先检查 Token 是否完整、chat_id 是否正确、手机网络是否正常。可把 URL 复制到浏览器测试,看返回的 JSON 中 ok 字段是否为 true,错误信息会写明原因。
2. 消息发不出去但接口正常?
可能是机器人被目标用户拉黑,或群组中机器人权限不足。群组里需允许机器人发言,部分群组还需关闭隐私模式或设为管理员。
3. 安全提醒
Bot Token 泄露等于机器人被他人控制,建议定期在 BotFather 中重置 Token。Tasker 配置导出分享时,注意删除 Token 和 chat_id 等敏感信息。轮询方案会持续联网,注意流量与电量消耗。
本文仅介绍技术实现思路,不涉及任何违规用途。请遵守 TG 平台规则与当地法律法规,合理使用自动化工具。
五、小结
Tasker 加 TG 机器人的组合,本质是把 TG 当作通知通道和指令入口。单向推送配置简单,适合大多数用户;双向控制需要处理轮询或中间服务,适合愿意折腾的进阶玩家。建议先从发送一条测试消息开始,跑通后再逐步扩展场景。