Google URL shortener with PHP and Google Api

On my previous post I was shown how to shorten URL using Bitly API and PHP. In this post I will show you how you can shorten URL using Google URL shortener api using PHP. Google also provide URL shortener service (goo.gl) for its users. To working with this API you will need to get a Google URL Shorten API key. If you do not have get one from here for free.


Google URL Shorten API


Google URL Class:

/**
* Google URL shorten API
* @version API V1
*/
class GoogleURL
{
 /**
  * API URL
  * @var string
  */
 private $apiURL = 'https://www.googleapis.com/urlshortener/v1/url';

 /**
  * Google URL shorten Constructor
  * @param string $apiKey
  * @return void
  */
 function __construct($apiKey)
 {
  # API URL with API keys
  $this->apiURL = $this->apiURL . '?key=' . $apiKey;
 }

 /**
  * Short Long URL
  * @param string $url as long URL
  * @return string as short URL or void
  */
 public function encode($url)
 {
  $data = $this->cURL($url, true);
  return isset($data->id) ? $data->id : '' ;
 }

 /**
  * Extend Short URL
  * @param string $url as short URL
  * @return string as as long URL or void 
  */
 public function decode($url)
 {
  $data = $this->cURL($url, false);
  return isset($data->longUrl) ? $data->longUrl : '' ;
 }

 /**
  * Send cURL Request
  * @param string $url
  * @param bool $post
  * @return object
  */
 private function cURL($url, $post = true)
 {
  # create cURL
  $ch = curl_init();
  # POST request for URL shorten
  if ($post) {
   curl_setopt( $ch, CURLOPT_URL, $this->apiURL );
   # set header content type for json
   curl_setopt( $ch, CURLOPT_HTTPHEADER, array('Content-Type: text/json') );
   # set request method post
   curl_setopt( $ch, CURLOPT_POST, true );
   # send json encoded request
   curl_setopt( $ch, CURLOPT_POSTFIELDS, json_encode(array('longUrl' => $url)) );
  }
  # GET request for URL extend
  else {
   curl_setopt( $ch, CURLOPT_URL, $this->apiURL . '&shortUrl=' . $url );
  }
  curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
  #curl_setopt( $ch, CURLOPT_BINARYTRANSFER, true );
  curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false );
  # execute curl request
  $json = curl_exec($ch);
  # close cURL connection
  curl_close($ch);
  # return response as object
  return (object) json_decode($json);
 }
}

Usages:

$api = new GoogleURL('put_your_api_key_here');
# shorten url
echo $api->encode('http://google.com');
# extend url
echo $api->decode('http://goo.gl/mR2d');

24 comments:

  1. Nice tutorial! Carry on......

    ReplyDelete
  2. Awesome work.Just wanted to drop a comment and say I am new to your blog and really like what I am reading.Thanks for the share

    ReplyDelete
  3. does not generate the short url, I had to change the text / json for application / json

    ReplyDelete
  4. I have this error whith your code and the Google Shorter URL api :
    This API does not support parsing form-encoded input.

    ReplyDelete
    Replies
    1. there are a update, you need change
      curl_setopt( $ch, CURLOPT_HTTPHEADER, array('Content-Type: text/json') );
      for ->
      curl_setopt( $ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json') );

      Delete
    2. please include those code which is said from Mr. Oscar Ivan Zamudio Montana.after that this code will run.............

      Delete
  5. Does this also work with http://358.dk

    ReplyDelete
  6. it decodes short url but doesn't seem to shorten long urls? can any one tell me why?

    ReplyDelete
  7. Lớp học kế toán tổng hợp thực hành tại hải phòng
    Lớp học kế toán tổng hợp thực hành tại biên hòa đồng nai
    Lớp học kế toán tổng hợp thực hành tại vinh nghệ an
    Lớp học kế toán tổng hợp thực hành tại hải dương
    Lớp học kế toán tổng hợp thực hành tại ninh bình
    Lớp học kế toán tổng hợp thực hành tại hưng yên
    Lớp học kế toán tổng hợp thực hành tại phú thọ
    Lớp học kế toán tổng hợp thực hành tại hà nam
    Lớp học kế toán tổng hợp thực hành tại vĩnh phúc
    Lớp học kế toán tổng hợp thực hành tại bắc giang
    Lớp học kế toán tổng hợp thực hành tại thái nguyên
    Lớp học kế toán tổng hợp thực hành tại thái bình
    Lớp học kế toán tổng hợp thực hành tại nam định
    Lớp học kế toán tổng hợp thực hành tại thanh hóa
    Lớp học kế toán tổng hợp thực hành tại tphcm
    Lớp học kế toán tổng hợp thực hành tại bắc ninh
    Lớp học kế toán tổng hợp thực hành tại hà đông
    Lớp học kế toán tổng hợp thực hành tại long biên
    Lớp học kế toán tổng hợp thực hành tại thanh xuân
    Lớp học kế toán tổng hợp thực hành tại cầu giấy
    khóa học kế toán toán dành cho giám đốc và nhà quản lý
    dịch vụ thành lập doanh nghiệp công ty trọn gói
    dịch vụ thành lập doanh nghiệp công ty tại hải phòng
    dịch vụ tạm ngừng, giải thể doanh nghiệp
    dich vu ke toan thue dich vu lam bao cao tai chinh

    ReplyDelete
  8. This comment has been removed by the author.

    ReplyDelete
  9. Thanks ,
    you need to change array('Content-Type: text/json') to array('Content-Type: application/json')

    ReplyDelete
  10. how to i include this to my website please help me

    ReplyDelete
  11. Did you know that you can create short links with AdFly and earn money from every click on your shortened urls.

    ReplyDelete
  12. The blog or and best that is extremely useful to keep I can share the ideas of the future as this is really what I was looking for, I am very comfortable and pleased to come here. Thank you very much.
    animal jam | five nights at freddy's | hotmail login

    ReplyDelete
  13. Thanks for looking professional services the list of Verified Foogle Packers And Movers. Compare to save money and select the best # www.fooglepackers.com

    Packers and Movers in Bangalore
    Packers and Movers in Gurgaon
    Packers and Movers in Pune

    ReplyDelete
  14. Interesting, I wasn't aware of that context. I guess it makes some sense, thanks for the history lesson!
    wings io

    ReplyDelete
  15. Thanks for your post! Through your pen I found the problem up interesting! I believe there are many other people who are interested in them just like me! Thanks your shared!... I hope you will continue to have similar posts to share with everyone! I believe a lot of people will be surprised to read this article!
    vex 3

    ReplyDelete
  16. We are always shifting are goods according’s to 1bhk, 2bhk, 3bhk and 4bhk shifting services are provide www.awaypackersmovers.in of entire of a building’s. Packing and moving or car transportation and relocation of motor vehicles to the commercial or factories’ products for hassle expect done shifting services in India. Once the packing is done with almost for the loading is done with immense are done by team of experts while the boxes can be shifting of heavy machinery equipment’s providers solution’s by the folder services managements by moving and packing company. List of packer and mover in India, take at it happens to be persons switch that can intern commonly generally is an excellent for the Away a techniques associated with persons for the needs services in India.
    Away Packers and Movers
    Packers and Movers Bangalore
    Packers and Movers Chennai
    Packers and Movers Delhi
    Packers and Movers Gurgaon
    Packers and Movers Hyderabad
    Packers and Movers Mumbai
    Packers and Movers Pune

    ReplyDelete
  17. I believe there are many more pleasurable opportunities ahead for individuals that looked at your site. php training in chennai

    ReplyDelete

Go to top