Post

How to Use Cloudflare Workers to Bypass Telegram Endpoints

How to Use Cloudflare Workers to Bypass Telegram Endpoints

If you’ve ever tried to interact with Telegram’s API or access certain endpoints, you might have run into restrictions or blocks. In this post, I’ll show you how to use Cloudflare Workers to bypass these restrictions and act as a proxy for Telegram endpoints. Let’s dive in!


What Are Cloudflare Workers?

Cloudflare Workers is a serverless platform that allows you to run JavaScript code at the edge of Cloudflare’s global network. It’s perfect for tasks like routing, filtering, or modifying requests and responses in real-time.

In this case, we’ll use a Cloudflare Worker to proxy requests to Telegram’s API, bypassing any restrictions or blocks.

Step 1: Set Up a Cloudflare Worker

  1. Sign Up for Cloudflare: If you don’t already have a Cloudflare account, sign up here.

  2. Create a New Worker:
    • Go to the Workers section in your Cloudflare dashboard.
    • Click Create a Service.
    • Name your worker (e.g., telegram-proxy).
  3. Write the Worker Code: Replace the default code with the following JavaScript:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    
    addEventListener('fetch', event => {
      event.respondWith(handleRequest(event.request))
    })
    
    async function handleRequest(request) {
      const url = new URL(request.url)
         
      // Check if the request is for the root directory
      if (url.pathname === '/') {
          return new Response('This is a proxy for the Telegram API.', {
              status: 200,
              headers: {
                  'Content-Type': 'text/plain'
              }
          })
      }
         
      // Set up the proxy URL to forward the request to the Telegram API
      url.hostname = 'api.telegram.org'
      url.protocol = 'https'
         
      // Prepare the request headers
      const newHeaders = new Headers(request.headers)
      newHeaders.set('X-Forwarded-Host', request.headers.get('Host'))
      newHeaders.set('X-Forwarded-Server', request.headers.get('Host'))
      newHeaders.set('X-Forwarded-For', request.headers.get('CF-Connecting-IP'))
         
      // Set up the new request
      const proxyRequest = new Request(url.toString(), {
          method: request.method,
          headers: newHeaders,
          body: request.body,
          redirect: 'follow'
      })
         
      // Fetch the response from the Telegram API
      const response = await fetch(proxyRequest)
         
      // Return the response back to the client
      return new Response(response.body, {
          status: response.status,
          statusText: response.statusText,
          headers: response.headers
      })
    }
    

    This code acts as a proxy, forwarding requests to Telegram’s API and returning the response to the client.

  4. Deploy the Worker:
    • Click Save and Deploy.
    • Your worker will now be live at a URL like https://telegram-proxy.your-subdomain.workers.dev.

Step 2: Use the Worker to Access Telegram Endpoints

Now that your worker is set up, you can use it to access Telegram endpoints. For example:

Instead of calling https://api.telegram.org/bot/getMe, you can call:

https://telegram-proxy.your-subdomain.workers.dev/bot<YOUR_BOT_TOKEN>/getMe

This will route your request through the Cloudflare Worker, bypassing any restrictions.

Step 3: Customize the Worker (Optional)

You can customize the worker to add additional functionality, such as:

  • Authentication: Add a secret key or token to restrict access to your worker.
  • Caching: Cache responses to reduce latency and improve performance.
  • Logging: Log requests for debugging or analytics.

Why Use Cloudflare Workers for This?

  • Bypass Restrictions: Cloudflare Workers can help you bypass IP blocks or regional restrictions.
  • Performance: Requests are handled at the edge, reducing latency.
  • Flexibility: You can customize the worker to suit your needs.

GitHub Repository

You can find the complete code for this Cloudflare Worker in my GitHub repository: masihgh/telegram-cloadflare-worker

Feel free to fork, star, or contribute to the project!

Final Thoughts

Cloudflare Workers are a powerful tool for developers, and using them to proxy Telegram endpoints is just one of many use cases. Whether you’re building a bot, integrating Telegram into your app, or just experimenting, this setup can save you a lot of headaches.

If you have any questions or run into issues, feel free to leave a comment below. Happy coding! 🚀

This post is licensed under CC BY 4.0 by the author.