能否仅通过客户端技术借助BotFather获取个人Telegram状态?
关于纯前端JS/Ajax获取Telegram在线状态的问题
首先明确:BotFather本身没有提供查询用户在线状态的接口,你得用官方的Telegram Bot API来做这件事。
能不能纯前端实现?
答案是:做不到完全无后端的纯前端方案,核心障碍是浏览器的CORS跨域限制——Telegram Bot API服务器没配置允许前端跨域请求的响应头,直接用Ajax/fetch发起请求会被浏览器拦截,根本拿不到返回结果。
如果你不在意机器人token暴露的安全风险(毕竟前端代码里的token任何人都能拿到,别人可以用你的机器人做任何操作),想试试绕路的话,只能依赖第三方CORS代理或者Cloudflare Workers这类边缘服务,但这些本质上还是依赖了后端服务,不符合你“不用任何后端”的要求。
若能绕过CORS的具体操作思路
假设你能解决跨域问题,步骤是这样的:
- 先通过BotFather创建一个机器人,拿到它的
token - 调用Bot API的
getChatMember接口,请求地址格式是:
这里的https://api.telegram.org/bot<你的机器人token>/getChatMember?chat_id=<你的对话ID>&user_id=<你的用户ID>chat_id可以是你和机器人私聊的对话ID(给机器人发条消息,再调用getUpdates接口就能拿到这个ID),user_id是你的Telegram用户ID。 - 接口返回的
status字段就是你的在线状态,比如online、offline、away这些值。
但再次强调:纯前端无后端的情况下,跨域问题无解,所以这个需求没法实现。
内容的提问来源于stack exchange,提问作者unix nexo
相关产品推荐
相关产品推荐

