基于 Cloudflare Workers 的 Telegram PM 机器人,支持 CAPTCHA 验证。
git clone https://github.com/yuwan027/Telegram-PM-Bot
cd Telegram-PM-Bot
npm installcp wrangler.toml.example wrangler.toml编辑 wrangler.toml 中的 [vars] 部分,填入:
ENV_BOT_TOKEN- 从 @BotFather 获取ENV_BOT_SECRET- 随机字符串(用于验证 Telegram webhook)ENV_ADMIN_UID- 从 @username_to_id_bot 获取(支持多个,逗号分隔)
npx wrangler login
npm run setup
npm run deploy部署完成后,Worker 会在首次接收请求时自动注册 Telegram webhook。
所有配置都在 wrangler.toml 的 [vars] 部分:
| 变量 | 说明 | 默认值 |
|---|---|---|
ENV_BOT_TOKEN |
Bot Token | 必填 |
ENV_BOT_SECRET |
Webhook 密钥 | 必填 |
ENV_ADMIN_UID |
管理员 ID(支持多个,逗号分隔) | 必填 |
CAPTCHA_MODE |
验证码类型:image 或 quiz |
quiz |
CAPTCHA_ENABLED |
启用验证码 | true |
CAPTCHA_TIMEOUT |
验证超时时间(毫秒) | 300000 |
CAPTCHA_MAX_ATTEMPTS |
最大尝试次数 | 3 |
WELCOME_MESSAGE |
欢迎消息 | 欢迎使用私聊机器人!完成验证后,您发送的消息才会被看到。 |
QUIZ_QUESTIONS |
自定义问答题(JSON格式) | 见下方示例 |
[
{
"question": "你是真人吗",
"options": ["我不是真人🙅", "我是真人👨", "我是机器人🤖", "我是伪人👻"],
"correctAnswer": 1
}
]注意:correctAnswer 是正确答案的索引(从 0 开始)
npm run dev本地开发时,Worker 会在首次接收请求时自动注册 webhook。你也可以直接向机器人发送消息来触发自动注册。
/pending- 查看待验证用户(可通过/拒绝)/failed- 查看验证失败用户(可通过/拉黑)/block- 屏蔽用户(回复消息)/unblock- 解除屏蔽(回复消息)/checkblock- 检查用户屏蔽状态(回复消息)
MIT