Hướng dẫn cách tạo Dynamic Link với CloudFlare Worker

Please wait 0 seconds...
Scroll Down and click on Go to Link for destination
Congrats! Link is Generated
Hướng dẫn cách tạo Dynamic Link với CloudFlare Worker
Hướng dẫn cách tạo Dynamic Link với CloudFlare Worker

Chào các bạn! 👋 Hôm nay mình sẽ chia sẻ cách tạo Dynamic Link sử dụng Cloudflare Worker. Đây là một giải pháp đơn giản và hiệu quả để tạo các link động, có thể tùy chỉnh theo nhu cầu của bạn. Hãy cùng bắt đầu nhé!

Dynamic Link là gì?

Dynamic Link là các đường link có thể thay đổi động dựa trên các điều kiện hoặc tham số khác nhau. Ví dụ, khi người dùng click vào link, họ có thể được chuyển hướng đến các địa chỉ khác nhau tùy thuộc vào thiết bị, vị trí địa lý, thời gian, hoặc bất kỳ logic nào mà bạn muốn.

Tại sao nên dùng Cloudflare Worker?

  • Miễn phí với 100,000 request mỗi ngày
  • Độ trễ cực thấp nhờ mạng lưới global của Cloudflare
  • Dễ dàng triển khai và quản lý
  • Có thể tùy chỉnh logic phức tạp bằng JavaScript

Các bước thực hiện

1. Đăng ký tài khoản Cloudflare

Nếu bạn chưa có tài khoản, hãy đăng ký tại cloudflare.com. Quá trình này hoàn toàn miễn phí nhé!

2. Tạo Worker mới

Sau khi đăng nhập:

  1. Vào mục "Workers & Pages"
  2. Click "Create Worker"
  3. Đặt tên cho Worker của bạn (ví dụ: dynamic-link)

3. Code cho Worker

Dưới đây là code mẫu để tạo một Dynamic Link đơn giản:

addEventListener('fetch', event => {
    event.respondWith(handleRequest(event.request))
})

async function handleRequest(request) {
    // Lấy URL hiện tại
    const url = new URL(request.url)

    // Lấy các tham số từ URL (nếu có)
    const targetPlatform = url.searchParams.get('platform')
    const source = url.searchParams.get('source')

    // Logic chuyển hướng
    let redirectUrl = 'https://default-website.com'

    // Kiểm tra thiết bị
    const userAgent = request.headers.get('User-Agent') || ''
    const isMobile = /Mobile|Android|iPhone/i.test(userAgent)

    if (isMobile) {
        if (targetPlatform === 'ios') {
            redirectUrl = 'https://apps.apple.com/your-app'
        } else if (targetPlatform === 'android') {
            redirectUrl = 'https://play.google.com/store/your-app'
        }
    }

    // Thêm UTM parameters nếu có source
    if (source) {
        redirectUrl += `?utm_source=${source}`
    }

    // Trả về response chuyển hướng
    return Response.redirect(redirectUrl, 302)
}

4. Triển khai và sử dụng

Sau khi lưu code, Worker của bạn sẽ được triển khai tự động. Bạn có thể sử dụng link với format:

https://[tên-worker].[username].workers.dev?platform=[ios/android]&source=[nguồn]

Ví dụ:

https://dynamic-link.your-name.workers.dev?platform=ios&source=facebook

Một số tính năng có thể mở rộng

  • Chuyển hướng theo vị trí địa lý
    const country = request.cf.country
    if (country === 'VN') {
      redirectUrl = 'https://vietnam-site.com'
    } else {
      redirectUrl = 'https://global-site.com'
    }
  • Chuyển hướng theo thời gian
    const hour = new Date().getHours()
    if (hour >= 22 || hour < 6) {
      redirectUrl = 'https://night-time-site.com'
    }
  • Theo dõi số lượt click
    // Sử dụng Cloudflare KV để lưu trữ số liệu
    await CLICKS.put('total', (await CLICKS.get('total') || 0) + 1)

Lời kết

Vậy là chúng ta đã hoàn thành việc tạo một Dynamic Link đơn giản bằng Cloudflare Worker rồi! 🎉

Bạn có thể tùy chỉnh logic chuyển hướng theo nhu cầu của mình. Một số ý tưởng mở rộng:

  • Tích hợp với các API bên ngoài
  • Thêm xác thực và bảo mật
  • Tạo trang đích tùy chỉnh
  • Thêm analytics và tracking

Nếu bạn cần thêm thông tin hoặc gặp khó khăn gì, đừng ngại để lại comment nhé! Chúc bạn thành công! 😊

Đăng nhận xét

Tham gia cuộc trò chuyện