Hướng dẫn rút gọn link hàng loạt bằng API

Hôm nay có thằng bạn hỏi cách để đổi link download (hàng loạt, tự động) sang short link của OUO.io, tiện thể mình viết một bài hướng dẫn các bạn luôn. Đối với dân coder thì nó quá đơn giản rồi, bài này dành cho các bạn không rành về PHP như mình nha.

Để có thể đổi link hàng loạt một cách tự động yêu cầu link đó phải là một biến, nghĩa là nó nằm trong một trường (field) dữ liệu của database. Trước đây mình hay để link download trong custom fields của WordPress hoặc dùng plugin để quản lý như WP-DownloadManager, Download Monitor, chứ không dán link trực tiếp vào nội dung của bài viết.

Giả sử bảng chứa link download trong database như sau:

iddownload_urlfile_name
1https://drive.google.com/open?id=0B8s4PgDrS14QX0NNQVlmTWZzYzQlemonServer-1.5.0-RC1.zip
2https://drive.google.com/open?id=0B8s4PgDrS14QY3JTQVozYVpOcTgWindows 10 wallpapers.rar

Rút gọn link

1. OUO.io

Bạn sử dụng đoạn code sau để đổi link download sang link của OUO.io, trong đó:

  • eGjzNqxv: API token id của bạn, lấy tại trang Tools – Quick Link.
  • $download_id: biến lấy download link từ database.
  • $ouo_link: biến xuất ra link OUO.io.
<?php
    ### Ouo.io Links ###
    $curl_url = 'http://ouo.io/api/eGjzNqxv?s='.$download_id;

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $curl_url);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    $ouo_link = curl_exec($ch);
    curl_close($ch);
?>

2. Shorte.st

Dữ liệu của Shorte.st ở dạng mảng nên hơi khác một chút so với OUO.io:

  • c885cc35e310b13b8c5398561430a5be: API token id của bạn, lấy tại trang Tools – Quick link.
  • $download_id: biến lấy download link từ database.
  • $shortest: biến xuất ra link sh.st.
<?php
    ### Shorte.st Links ###
    $curl_url = 'https://api.shorte.st/s/c885cc35e310b13b8c5398561430a5be/'.$download_id;

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $curl_url);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    $result = curl_exec($ch);
    curl_close($ch);

    $array = json_decode($result);
    $shortest = $array->shortenedUrl;
?>

3. AdF.ly

Hoàn toàn tương tự như OUO.io:

  • 5404f86962cfd31d62112ff9e47f0d48: API token id của bạn, lấy tại trang Tools – API Documentation.
  • domain=adf.ly: domain của short link, có thể thay bằng domain=q.gs, hoặc domain của chính bạn (cách add domain riêng tại đây.)
  • $download_id: biến lấy download link từ database.
  • $adfly_link: biến xuất ra link AdF.ly.
<?php
    ### AdF.ly Links ###
    $curl_url = 'http://api.adf.ly/api.php?key=5404f86962cfd31d62112ff9e47f0d48&uid=1409722&advert_type=int&domain=adf.ly&url='.$download_id;

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $curl_url);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    $adfly_link = curl_exec($ch);
    curl_close($ch);
?>

Áp dụng cho WP-DownloadManager

Trước đây khi mình còn kiếm tiền bằng PTU mình chỉ sử dụng duy nhất WP-DownloadManager để quản lý link download, nên giờ áp dụng luôn cho nó nha.

Mở file wp-downloadmanager.php tìm ### Function: Download URL và thay thế bằng các đoạn code tương ứng bên dưới là xong nha. Nhớ thay API code của bạn nha không mình lại phải “cảm ơn” đó 😂.

1. OUO.io

### Function: Download URL
function download_file_url($file_id, $file_name) {
    $file_id = intval($file_id);
    $file_name = stripslashes($file_name);
    if(!is_remote_file($file_name)) {
        $file_name = substr($file_name, 1);
    }
    $download_options = get_option('download_options');
    $download_use_filename = intval($download_options['use_filename']);
    $download_nice_permalink = intval(get_option('download_nice_permalink'));
    if($download_nice_permalink == 1) {
        $curl_url = "http://ouo.io/api/eGjzNqxv?s=$file_name";
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $curl_url);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $ouoio = curl_exec($ch);
        curl_close($ch);

        if($download_use_filename == 1) {
            $download_file_url = $ouoio;
        } else {
            $download_file_url = $ouoio;
        }
    } else {
        if($download_use_filename == 1) {
            $download_file_url =  $ouoio;
        } else {
            $download_file_url =  $ouoio;
        }
    }
    return $download_file_url;
}

2. Shorte.st

### Function: Download URL
function download_file_url($file_id, $file_name) {
    $file_id = intval($file_id);
    $file_name = stripslashes($file_name);
    if(!is_remote_file($file_name)) {
        $file_name = substr($file_name, 1);
    }
    $download_options = get_option('download_options');
    $download_use_filename = intval($download_options['use_filename']);
    $download_nice_permalink = intval(get_option('download_nice_permalink'));
    if($download_nice_permalink == 1) {
        $curl_url = "https://api.shorte.st/s/c885cc35e310b13b8c5398561430a5be/$file_name";
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $curl_url);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $result = curl_exec($ch);
        curl_close($ch);

        $array = json_decode($result); //shorte.st
        $shortest = $array->shortenedUrl; //shorte.st

        if($download_use_filename == 1) {
            $download_file_url = $shortest;
        } else {
            $download_file_url = $shortest;
        }
    } else {
        if($download_use_filename == 1) {
            $download_file_url =  $shortest;
        } else {
            $download_file_url =  $shortest;
        }
    }
    return $download_file_url;
}

3. AdF.ly

### Function: Download URL
function download_file_url($file_id, $file_name) {
    $file_id = intval($file_id);
    $file_name = stripslashes($file_name);
    if(!is_remote_file($file_name)) {
        $file_name = substr($file_name, 1);
    }
    $download_options = get_option('download_options');
    $download_use_filename = intval($download_options['use_filename']);
    $download_nice_permalink = intval(get_option('download_nice_permalink'));
    if($download_nice_permalink == 1) {
        $curl_url = "http://api.adf.ly/api.php?key=5404f86962cfd31d62112ff9e47f0d48&uid=1409722&advert_type=int&domain=q.gs&url=$file_name";
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $curl_url);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $adfly = curl_exec($ch);
        curl_close($ch);

        if($download_use_filename == 1) {
            $download_file_url = $adfly;
        } else {
            $download_file_url = $adfly;
        }
    } else {
        if($download_use_filename == 1) {
            $download_file_url =  $adfly;
        } else {
            $download_file_url =  $adfly;
        }
    }
    return $download_file_url;
}

Lời kết

Trên đây chỉ là một hướng dẫn nhanh, cụ thể còn tùy vào việc bạn quản lý link như thế nào, bằng custome fields hay plugins. Nếu cần trợ giúp hãy để lại bình luận bên dưới cùng với vấn đề của bạn, càng chi tiết càng tốt nhé.

7 Responses

  1. Dat says:

    cho em hỏi là mình copy đoạn code đó vào file nào vậy chủ thớt

    • Sáu Ngón says:

      Xin lỗi bạn đã trả lời muộn, dạo này mình không online thường xuyên lắm.

      Nếu bạn biết một chút về PHP thì nó đơn giản lắm.
      Ví dụ nếu bạn dùng plugin WP-DownloadManager thì có thể sửa hàm Function: Download URL trong file wp-downloadmanager.php như sau: https://gist.github.com/saungon/f37696e606fbfa0c5e23

      Cụ thể bạn quản lý link như thế nào thì mình cần biết cụ thể thì mới có thể trả lời chính xác được.

  2. Stronger says:

    Mình có nhiều link cần tạo url short của goo.gl. Có cách nào để tạo nhanh, hàng loạt ko? Giúp mình với

  3. Sáu Ngón says:

    Sự thật là mình ko rành PHP, bạn có thể tham khảo ở đây:
    https://developers.google.com/url-shortener/v1/getting_started
    https://davidwalsh.name/google-url

    Nếu bạn không biết PHP thì bạn cần chỉ rõ bạn đang quản lý links như thế nào để mình tiện giúp. Dạo này mình ko hay online nên giờ mới biết để trả lời bạn. Sorry 🙁

  4. Cái bài viết này đọc hoài ko chán, hay lắm nhé, tks

  5. Minh Clear says:

    Bài viết rất rất rất bổ ích cho dân MMO.
    Thank you so much

  1. 03/09/2015

    […] bạn đọc bài hướng dẫn rút gọn link hàng loạt bằng API để có thể thay thế tự động, toàn bộ download link cũ trên website sang short […]

Leave a Reply

Your email address will not be published. Required fields are marked *