การใช้งาน URL Shortener

shorturl

URL Shortener เป็นการทำให้ url สั้นลง  โดยการนำ url จริงไปฝากไว้ที่ google  แล้วเมื่อมีการใช้งาน  Google จะ Return Url จริงกลับมาให้

ทำไมเราต้องให้ url สั้นลง ?
–  เนื่องจากในบางครั้งเรามีการใช้งานของ API อื่นๆที่เปิดให้เราใช้งานมีการจำกัดตัวอักษร ทำให้ติดปัญหาที่ URL เรายาวเกินไปใช้งานไม่ได้   ยกตัวอย่างเช่น
เราหา URL ไฟล์จาก Youtube ได้แล้วอยากให้โปรแกรมบางชนิดดูดไฟล์ไปแต่ URL ยาวเกิน

เราจึงจำเป็นต้องพึ่ง Shorturl ต่างๆเหล่านี้  ซึ่งทาง Google เองก็มีเปิดให้ใช้งานฟรี  1,000,000 requests/day  ก็สามารถช่วยได้  งั้นมาเริ่มใช้งาน URL Shortener ของ Google กันเลยดีกว่า


ขั้นตอนการเปิดใช้งาน URL Shortener

1.  เข้าไปที่ Google Console ทำการสร้าง Project ที่เราต้องการ

shorturl0


2.  เมื่อเข้ามาใน Project ให้ทำการเข้าไปเปิด API ที่  APIs

shorturl1


3.  เข้าไปที่ URL Shortener API  แล้วทำการ enable เพื่อเปิดใช้งาน

shorturl1_2


4.  ทำการสร้าง API Key โดยเลือกเมนู Credentials

shorturl2


5.  หากยังไม่มี API Key   ให้เลือก Create new key  แล้วเลือก Browser key เพื่อใช้สำหรับ website (ใน Reference ให้ว่างๆไว้ก่อน เพื่อให้ใช้งานได้ทุก website  จะได้ไม่สับสนในการตรวจสอบ)

shorturl3

* เท่านี้เราก็จะมี API key ไว้ใช้งานแล้ว


ขั้นตอนการเขียน PHP เพื่อใช้งาน

1. เขียนสคริปดังนี้  โดยใส่ค่า API Key ที่เราได้จากขั้นตอนข้างบนมาใส่

class GoogleUrlApi { 
 function GoogleURLAPI($apiURL = 'https://www.googleapis.com/urlshortener/v1/url') {
    $key = 'API Key';
    $this->apiURL = $apiURL.'?key='.$key;
 }

 function shorten($url) {
    $response = $this->send($url);
    return isset($response['id']) ? $response['id'] : false;
 }

 function expand($url) {
    $response = $this->send($url,false);
    return isset($response['longUrl']) ? $response['longUrl'] : false;
 }

 function send($url,$shorten = true) {
    $ch = curl_init();
    if($shorten) {
       curl_setopt($ch,CURLOPT_URL,$this->apiURL);
       curl_setopt($ch,CURLOPT_POST,1);
       curl_setopt($ch,CURLOPT_POSTFIELDS,json_encode(array("longUrl"=>$url)));
       curl_setopt($ch,CURLOPT_HTTPHEADER,array("Content-Type: application/json"));
    }else {
       curl_setopt($ch,CURLOPT_URL,$this->apiURL.'&shortUrl='.$url);
    }
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    $result = curl_exec($ch);
    curl_close($ch);
    return json_decode($result,true);
 }
}

2.  สคริปนำไปใช้งาน

$googer = new GoogleURLAPI();
if(isset($_REQUEST["longurl"])){
   $shortDWName = $googer->shorten($_REQUEST["longurl"]);
   echo $shortDWName;
}else{
   echo "please input youtube url";
}

Reference : https://developers.google.com/url-shortener/