浏览器保存插件
【转帖】主流显卡H265、VP9硬件解码支持情况 - 知乎
Caddy – 方便够用的 HTTPS server 新手教程_weixin_34279184的博客-CSDN博客
亂數假文產生器 - Chinese Lorem Ipsum
Caddy实战- CSDN搜索
【如何优雅地写博客】利用h5ai自建一个视频床!
【如何优雅地写博客】自建一个永不裂开的图床!
小爱同学网络唤醒(Wake on Lan,WOL)启动电脑 - 知乎
安全的内网穿透保姆级教程,使用nginx反向代理给内网设备实现双向ssl认证,阻止无证书用户暴力破解nas|网卡|主机|内网穿透_新浪新闻
解决BCM94360CD 4天线,在windows10下蓝牙耳机断断续续问题
内网穿透 篇三:安全的内网穿透保姆级教程,使用nginx反向代理给内网设备实现双向ssl认证,阻止无证书用户暴力破解nas_NAS存储_什么值得买
5分钟了解游戏加速器的原理与搭建 - 知乎
解决BCM94360CD 4天线,在windows10下蓝牙耳机断断续续问题 | 粘贴怪
# PS2 重装机兵 沙尘之锁攻略
前线任务4攻略上
前线任务4攻略下
前线任务4系统详解
前线任务5详细流程攻略
Potplayer + LAVFilters + madVR 配置教程
linux 启动服务后台运行,linux后台启动任务
openwrt管理后台使用caddy代替uhttpd
编译caddy替代openwrt的uhttpd
如何获取Bing每日图片并作为网站背景图使用?
Bing每日壁纸API
一分钟自建zerotier-plant
zerotier的planet服务器(根服务器)的搭建踩坑记。无需zerotier官网账号
anylink
在 Linux 系统下使用迅雷远程离线下载
docker修改Docker容器启动配置参数
opkg 全部更新
甲骨文云 开户root,防火墙
UNRAID增加和缩小虚拟机虚拟磁盘大小
cm311-1a有2个IP的原因
榨干性能!魔百和CM311-1a KVM Openwrt& Docker安装以及Tailscale内网穿透保姆级教程_NAS存储_什么值得买
openwrt tailscale
UNRAID增加和缩小虚拟机虚拟磁盘大小
详解OpenWrt路由器设置Crontab定时检查网络并重启
Debian如何更换apt源
debian11 配置samba服务 linuxsys
debian11 配置samba服务
Debian 部署安装 Clash
防止甲骨文永久免费的计算实例被回收
怎么查看docker启动参数
Docker中Jellyfin开启硬件加速(Intel QuickSync)
Ext4文件系统修复
armbian显示系统信息的脚本-斐讯无线路由器以及其它斐迅网络设备-恩山无线论坛 - Powered by Discuz!
armbian显示系统信息的脚本
Linux 让终端走代理的几种方法
网站推荐
通过KMS方式激活 Windows 11 系统
各种显卡H265/HEVC/VP9/AV1格式4K和8K视频硬解码支持列表
unraid安装clash 及启用http代理_NAS存储_什么值得买
常见软路由/NAS/低功耗处理器对比 2020.12
1130-白嫖者联盟
Debian-Linux配置网卡网络方法
光猫桥接模式下,通过路由器访问光猫.简单设置
Docker一键脚本安装脚本(可选安装Docker Compose)
tgapi推送教程
UNRAID 使用自定义证书教程
只有 3MB 的自签名证书制作 Docker 工具镜像:Certs Maker
如何制作和使用自签名证书
通过Nginx Proxy Manager反代访问unraid管理页面
unRAID 篇十:unRAID 6.10.3远程管理并开启SSL访问_软件应用_什么值得买
unRAID 篇十一:unRAID 篇十:unRAID 6.10.3远程管理并开启SSL访问-填坑_软件应用_什么值得买
入正 Unraid ! 6.10 更新了什么?证书如何配置?
NAS那些事儿 篇一:纯IPV4访问纯IPV6且内网穿透_NAS存储_什么值得买
甲骨文Oracle取消强制修改密码
用uci配置openwrt防火墙
捡垃圾 篇八:花30元实现你的平价sonos——音响升级DLAN和Airplay,附上平价音响推荐_蓝牙音箱_什么值得买
3 分钟教你解锁 Sonos 和小爱等智能音箱的 AirPlay 功能_软件
CentOS7、ubuntu正确挂载网络磁盘方法
全网首发,没有比这更快的视频下载方法!
黑苹果硬件配置推荐,铭瑄MS-挑战者 H510ITX主板,安装真的很简单
黑苹果硬件配置推荐,铭瑄MS-挑战者H510ITX主板,安装真的很简单
openwrt 一键更新所有软件 opkg upgrade all packages
黑猴子的家:华为 OpenEuler(欧拉) Linux 之基本配置 - openEuler-20.03-LTS
免费翻墙,批量vless节点,反代伪装网页,轻松跑满本地宽带
小米(Mi) 6小米(Mi) 6 手机刷 TWRP 方法,刷三方Recovery方法(解决卡米问题)刷机解锁
debian12版本默认SSH不让ROOT账户远程登录解决方案(重置密码)
Debian安装Oh-my-zsh
【转发】zsh中 配置显示完整路径
如何在Linux系统中查看CPU温度
Fedora 启动 SSH服务 - 学海无涯1999 - 博客园
Bash命令行显示当前用户的完整路径
使用YUM安装docker
Linux 中的 ls 命令使用教程
Linux系统资源监控工具(top,htop,glances)
UNraid安装HomeAssistant与智能家庭部署_智能家居_什么值得买
Home Assistant如何安装配置HACS(hacs安装配置图文教程)
Homeassistant安装HACS_china(HACS)和ha_file_explorer(文件管理器) - kccic - 博客园
zsh 环境变量无法正常工作ShellClash
LInux远程文件传输效率工具:lrzsz
Windows 上的 Linux 子系统:WSL
Docker 无法启动 Failed to start LSB: Create lightweight, portable, self-sufficient containers.
一键安装docker(命令)
xiaoya全家桶系列教程:原版小雅、alist-tvbox、小雅-emby
Oracle OCI甲骨文云VPS启用原生IPv6
systemctl配置管理文件详解
Linux系统服务神器:systemctl的配置与使用 - 掘金
使用 oh-my-zsh 找不到 shellclash
ps2022总是提示需要访问钥匙串秘钥怎么解决?
在 macOS 中使用 Parallels Desktop 虚拟机安装 OpenWrt | Sukka's Blog
HP t430 Q&A
折腾 HP T430 Thin Client
惠普HP t430安装openwrt,配置旁路由,附跑分
联通GPON/4+1+WiFi(2.4G)TEWA-800G配置桥接模式
Ubuntu挂载Apfs文件系统磁盘(OSX分区) - 小家猫 - 博客园
unRAID虚拟机添加声卡_unraid虚拟机安装虚拟声卡-CSDN博客
docker 限制网速
jellyfin 代理
使用Cloudflare Worker代理Telegram Bot Api(2023.05)
Cloudflare + Backblaze私有桶 实现免费的图床 | king
MacOS 14 Sonoma 英特无线网卡无法检测更新及在线升级失败解决方案 - 黑果之家
惠普HP t430安装openwrt,配置旁路由,
小雅Alist定时清理缓存 - xyztank - 博客园
Unraid中安装小雅Alist、Emby全家桶
(图文)jellyfin如何重置账户密码的详细教程
【2023-10-24】【R4S】 (RK3399) jellyfin 硬解4K H.265 视频-OPENWRT专版-恩山无线论坛
从已运行容器获取docker run参数
armbian 一键换源
dts — rk3399.dtsi
samba搭建记录
docker限制容器下载速度
好好学Docker:Docker容器网络限速
记录一次Unraid开心版升级 | 一个无人问津的小站
manjaro软件包管理器pacman介绍,并于centOS7yum类比
当Mac文件被永久锁定后,如:hosts文件无法修改被锁定且无法解锁
switch《塞尔达传说王国之泪》1.21含60帧多功能mod
命令提示符、Powershell、CMD闪退问题的解决
批量更新 OpenWRT 软件包
ROS7.8 L6授权 MikroTik_RouterOS7.8 _UEFI_ESXI+PVE+unRaid_i225_i226
联通吉比特TEWA-800G超级管理员密码获取
systemd时代的/etc/fstab - Systemd系列文章
armbian插入磁盘自动挂载及docker安装
开发板linux自动挂载U盘和SD卡/Automount usb disk and sdcard on the linux
udev自动挂载和命名
使用Cloudflare Worker代理Telegram Bot Api
RK3588在Armbian上运行PIKVM
穷人的IP-KVM远程访问
禁用Intel ME
sunshine 基地版串流食用指南
Docker版本的Transmission更换webui为 transmission-web-control
WOL 网络唤醒避坑指南:常见问题的分析与内容补充_软件应用_什么值得买
Win11 设置 Syncthing 开机自启动
imlala/ubuntu-xfce-vnc-novnc
NAS用户必备!170 多个好玩的,好用的docker容器_NAS存储_什么值得买
通过Redroid搭建自己的云手机
基于 Telegraph 的免费图床 - 摸鱼派 - 白与画科技
Webmin--一个用于Linux基于Web的系统管理工具
CMWTAT_Digital_Edition/README.zh.md at master · TGSAN/CMWTAT_Digital_Edition
❤️🔥电视盒子助手Docker版使用摘要-悟空的日常
Update LineageOS on Xiaomi Mi 6
一加七Pro刷lineageos21(kernelsu+gapps)
Install LineageOS on Xiaomi Mi 6
Android刷機常見的GApps套件 (Google服務框架) 比較,OpenGApps、NikGApps、MindTheGApps、microG · Ivon的部落格
r08 armbian固件喇叭播放 - LaJiLao.Top
Docker 命令大全 | 菜鸟教程
本文档使用 MrDoc 发布
-
+
首页
使用Cloudflare Worker代理Telegram Bot Api
**截止2023年7月,该方法可用,如果失效,我会告知。** 众所周知的原因,Telegram的API在国内是用不了的,以前我用的是nginx的反代,但是最近把所有的vps都改为traefik了,又不想再弄一层nginx的反代,就研究了一下使用Cloudflare Worker来反代。反正白嫖的,不用白不用,一天100w次访问也足够个人使用了。 > 使用前提 > > 1.一个托管在cloudflare的域名 > 2.开启cloudflare的免费worker服务 首先登录Cloudflare以后点击左侧的Workers [](https://anerg.com/wp-content/uploads/2022/07/image-4.png) 点击创建服务 [](https://anerg.com/wp-content/uploads/2022/07/image-5.png) 服务名称随意填写,但是下面需要选择HTTP路由器 [](https://anerg.com/wp-content/uploads/2022/07/image-6.png) 创建完成后,点击刚创建的Worker,再点击快速编辑 [](https://anerg.com/wp-content/uploads/2022/07/image-7.png) 在左侧红框处删除原有的,填入下面给出的代码 [](https://anerg.com/wp-content/uploads/2022/07/image-8.png) ```typescript /** * Helper functions to check if the request uses * corresponding method. * */ const Method = (method) => (req) => req.method.toLowerCase() === method.toLowerCase(); const Get = Method('get'); const Post = Method('post'); const Path = (regExp) => (req) => { const url = new URL(req.url); const path = url.pathname; return path.match(regExp) && path.match(regExp)[0] === path; }; /* * The regex to get the bot_token and api_method from request URL * as the first and second backreference respectively. */ const URL_PATH_REGEX = /^\/bot(?<bot_token>[^/]+)\/(?<api_method>[a-z]+)/i; /** * Router handles the logic of what handler is matched given conditions * for each request */ class Router { constructor() { this.routes = []; } handle(conditions, handler) { this.routes.push({ conditions, handler, }); return this; } get(url, handler) { return this.handle([Get, Path(url)], handler); } post(url, handler) { return this.handle([Post, Path(url)], handler); } all(handler) { return this.handler([], handler); } route(req) { const route = this.resolve(req); if (route) { return route.handler(req); } const description = 'No matching route found'; const error_code = 404; return new Response( JSON.stringify({ ok: false, error_code, description, }), { status: error_code, statusText: description, headers: { 'content-type': 'application/json', }, } ); } /** * It returns the matching route that returns true * for all the conditions if any. */ resolve(req) { return this.routes.find((r) => { if (!r.conditions || (Array.isArray(r) && !r.conditions.length)) { return true; } if (typeof r.conditions === 'function') { return r.conditions(req); } return r.conditions.every((c) => c(req)); }); } } /** * Sends a POST request with JSON data to Telegram Bot API * and reads in the response body. * @param {Request} request the incoming request */ async function handler(request) { // Extract the URl method from the request. const { url, ..._request } = request; const { pathname: path, search } = new URL(url); // Leave the first match as we are interested only in backreferences. const { bot_token, api_method } = path.match(URL_PATH_REGEX).groups; // Build the URL const api_url = 'https://api.telegram.org/bot' + bot_token + '/' + api_method + search; // Get the response from API. const response = await fetch(api_url, _request); const result = await response.text(); const res = new Response(result, _request); res.headers.set('Content-Type', 'application/json'); return res; } /** * Handles the incoming request. * @param {Request} request the incoming request. */ async function handleRequest(request) { const r = new Router(); r.get(URL_PATH_REGEX, (req) => handler(req)); r.post(URL_PATH_REGEX, (req) => handler(req)); const resp = await r.route(request); return resp; } /** * Hook into the fetch event. */ addEventListener('fetch', (event) => { event.respondWith(handleRequest(event.request)); }); ``` 回到管理后台首页,点击左侧的“网站”,在右侧点击你已托管在Cloudflare的域名 [](https://anerg.com/wp-content/uploads/2022/07/image-9.png) 选择该域名下的Workers [](https://anerg.com/wp-content/uploads/2022/07/image-10.png) 选择添加路由 [](https://anerg.com/wp-content/uploads/2022/07/image-11.png) 在红框处填写你想要用的二级域名,比如:tgapi.test.com/\* 注意后面必须是/\*结尾,服务选择刚才创建的服务,环境选择production即可 [](https://anerg.com/wp-content/uploads/2022/07/image-12.png) 最后保存就可以了。 现在可以替换掉你在任何地方使用telegram api的地址为https://tg.test.com了。
bigood
2024年10月17日 20:56
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码