众所周知的原因,Telegram的API在国内是用不了的,以前我用的是nginx的反代,但是最近把所有的vps都改为traefik了,又不想再弄一层nginx的反代,就研究了一下使用Cloudflare Worker来反代。反正白嫖的,不用白不用,一天100w次访问也足够个人使用了。

使用前提

1.一个托管在cloudflare的域名
2.开启cloudflare的免费worker服务

首先登录Cloudflare以后点击左侧的Workers

const whitelist = ["/bot【你的botToken】"];
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;
}

文章作者: 烟雨
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 烟雨阁
喜欢就支持一下吧