控制台

—— 或 ——
控制台…

运行状态

加载中...

API 接口可用状态

加载中...

管理员密钥 ADMIN_SECRET

APIKEYS

PROXIES

user:pass@http://1.2.3.4:8080 http://1.2.3.4:8080 user:pass@https://proxy.example.com:8443 https://gw.example.com:8443/route-x

调用统计

加载中...

HTTP 代理服务

加载中...

路径配置 CF_PROXY_PATHS

域名白名单 CF_PROXY_DOMAINS

访问账户 CF_PROXY_USERS

用户名密码限速操作

限速开关 CF_PROXY_RATE

导出配置

ADMIN_SECRET
APIKEYS
PROXIES
CF_PROXY_DOMAINS
CF_PROXY_PATHS
CF_PROXY_USERS
CF_PROXY_RATE
STEP 1 · 发送验证码
STEP 2 · 登录换取会话
STEP 3 · 创建应用
工具

说明

本工具整合两个能力: Telegram api_id/api_hash 申请网关 + HTTP 代理转发。共用 ADMIN_SECRET(管理员登录)与 APIKEYS(Bearer 鉴权), 在「配置」页统一管理。

一、整体架构

  • 申请网关: 服务端代替浏览器调用 my.telegram.org, 完成 send-code → verify-code → create-app, 返回 api_id / api_hash。上游经 PROXIES 代理池访问。
  • HTTP 代理: URL 前缀方式转发 HTTP(S) 请求, 支持域名白名单、多路径(透传/非透传)、Basic 账户 + Bearer APIKey 鉴权、限速。
  • 统一鉴权: ADMIN_SECRET 登录控制台; APIKEYS 作为 Bearer 令牌调用接口或作为代理访问凭证。
  • 配置存储: Node 写入 mytelegram_config.json + tgapi_stats.json, 立即生效; Cloudflare 通过环境变量, 重新部署后生效。

二、申请网关 HTTP API(POST, JSON)

端点鉴权请求体
POST /api/send-codeBearer APIKey{"phone":"+86138..."}
POST /api/verify-codeBearer APIKey{"phone","random_hash","code"}
POST /api/get-appBearer APIKey{"stel_token"}
POST /api/create-appBearer APIKey{"stel_token","app_title","app_shortname","app_url?","app_platform?","app_desc?"}
POST /api/login / /api/logoutADMIN_SECRET{"secret"} 管理员登录(HMAC Cookie, 2h)
POST /api/check-key-{"key"} 校验 API Key
GET /api/admin/config管理员读取全部配置与状态
POST /api/admin/save管理员{"section":"apikeys|proxies|admin_secret|proxy_paths|proxy_domains|proxy_users|rate", ...}
POST /api/admin/test-proxies管理员{"proxies":[...]} 测试上游代理
POST /api/admin/test-proxy-service管理员HTTP 代理自检
GET /api/stats管理员(Node)读取调用统计
GET /api/health无健康检查
curl -X POST https://你的域名/api/send-code \
  -H "Authorization: Bearer <你的APIKEY>" \
  -H "Content-Type: application/json" \
  -d '{"phone":"+8613800000000"}'
# → {"ok":true,"phone":"...","random_hash":"...","cookies":{...}}
# 限流 → {"ok":false,"error":"Sorry, too many tries...","field":false}
会话为客户端透传(服务端无状态): random_hash / stel_token 由调用方保存并在后续请求带回(body.stel_token 或 body.cookies)。

三、HTTP 代理使用

curl -x https://<域名>/<路径>/ https://target.com/api/x
curl https://user:pass@<域名>/<路径>/https://target.com/api/x
curl -H "Authorization: Bearer <APIKEY>" https://<域名>/<路径>/https://target.com/api/x
  • 路径: 在「代理」页配置, 最长前缀优先匹配。未配置时默认按 / 处理。
  • 透传: 勾选后原样转发请求头并原样返回上游响应; 不勾选则清洗请求头并以 CORS 模式重建响应。
  • 鉴权: HTTP Basic(CF_PROXY_USERS)或 Bearer APIKey(APIKEYS)。
  • 域名白名单: 目标域名必须在 CF_PROXY_DOMAINS 内(支持 *.a.com), 否则 403。
  • 限速: 默认 60 次/60 秒, 账户可覆盖。CF_PROXY_RATE=off 可关闭。
  • 方法: GET / POST / HEAD / PUT / DELETE / PATCH, 流式透传请求体。

四、配置变量参考

变量用途分隔
ADMIN_SECRET管理员登录密钥单值
APIKEYSBearer 鉴权 Key 列表; 分隔
PROXIES申请网关上游代理池; 分隔
CF_PROXY_DOMAINSHTTP 代理域名白名单; 分隔
CF_PROXY_PATHSHTTP 代理路径(/xxx:1 透传); 分隔
CF_PROXY_USERSHTTP 代理 Basic 账户(user:pass[:limit:window]); 分隔
CF_PROXY_RATEoff 关闭限速单值

五、部署

Cloudflare Workers: npx wrangler deploy worker.js --name tg-api-proxy。在线写回需 CF_ACCOUNT_ID + CF_API_TOKEN(Workers Scripts:Edit) + CF_SCRIPT_NAME。

Node(≥ 18, 零依赖): node mytelegram_client.mjs serve --port 8787。首次运行生成 mytelegram_config.json(含随机 admin_secret)。配置保存立即生效, 统计写入 tgapi_stats.json。

Cloudflare Pages: 见 cloudflare-pages/ 目录, wrangler pages deploy。

生产建议: systemd/pm2 常驻 + nginx/caddy 套 HTTPS; ADMIN_SECRET / CF_API_TOKEN 用加密(secret)存储。

六、安全注意

  • ADMIN_SECRET / CF_API_TOKEN 用加密(secret)变量; config.json 文件权限 600。
  • api_hash 等同账号级机密, 仅经你自己的服务端中转。
  • API Key 泄露时在「配置」页删除并保存即可即时吊销。
  • 上游对 IP 与号码都有频率限制, 请勿高频滥用。