这篇文章的目的主要是解决网上各种教程不完整、有问题,导致实际操作的时候按照其流程进行无法成功。
目前环境下,实现TG推送必须要靠反代,没有反代我试了很多方法都不行。
另外,自己要有一个自己的域名。
先说总体步骤:
1、申请bot机器人,获取tg的user id
2、Cloudflare部署worker
3、青龙面板配置
按照步骤来:
1、申请bot机器人,获取tg的user id
在Telegram搜索【@BotFather】
点击【开始】–输入【/newbot】
给你的机器人起名字。名字自定义,可中文。
编辑个tg机器人的用户名自定义以”*_bot”结尾,便可获取到token
重新搜索【@getuseridbot】–点击【/start】便可获取到你的ID
这里要说明的是,在自定义tg bot名字的时候可能会一直出现“名字被占用了”这种字样,那就换一个,不是tg的问题,而是确实被占用了。
2、Cloudflare部署worker
首先你要有一个域名,如果没有的话,需要自行申请,在这里不赘述。
然后跳转到 https://dash.cloudflare.com/ 进行账户的注册相关。
注册好后,找到 Works and Pages 选项,点击 创建Work
一直下一步,直到看到这个页面,然后点击 编辑代码:
把之前的代码删除,替换成下面的代码:
const whitelist = ["/bot888518123:"];
const tg_host = "api.telegram.org";
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request))
})
function validate(path) {
for (var i = 0; i < whitelist.length; i++) {
if (path.startsWith(whitelist[i]))
return true;
}
return false;
}
async function handleRequest(request) {
var u = new URL(request.url);
u.host = tg_host;
if (!validate(u.pathname))
return new Response('Unauthorized', {
status: 403
});
var req = new Request(u, {
method: request.method,
headers: request.headers,
body: request.body
});
const result = await fetch(req);
return result;
}
其中,第一行const whitelist = ["/bot888518123:"]; 中的 888518123 需要替换成 第一步 中,申请的机器人的HTTP API中冒号前的数字部分
然后点击右上角 “保存并部署” 即可。
接下来是域名的管理部分
将自己的域名输入之后,点击 继续
然后根据提示进行设置(这里因为没有图片,所以没法详细展开,有问题可以留言)。
设置好之后,进行Works路由的设置
点击添加路由,填入如下信息:
其中的tgapi必须和下一步中的名称一致。
点击保存。
添加好路由后,新建一个 DNS 记录。随便用一个 ipv4 的地址指向这个前缀。把代理状态打开,点亮小橙云。如下:
3、青龙面板的配置
这里就比较简单了。直接上图:
telegramBotApiHost 填 在上一步配置Works路由部分,填入的路由地址。
然后配置文件中也填入相同内容,如下:
到这里,配置就结束了。
可以找个任务测试下,定时任务 页面 搜索 京东资产统计 ,然后执行。你应该能在tg端收到推送消息了:
评论 (0)