Raccourcissez vos url avec Google API

Raccourcissez vos url avec Google API

Google propose depuis quelques temps un outil permettant de réduire les url passant de https://developers.google.com/url-shortener/?hl=fr à http://goo.gl/zdjX9. Ces deux adresses pointes sur la même page mais la seconde est plus courte, et prendra moins de place dans vos tweets. Dans ce tutoriel, nous allons donc voir comment utiliser cette outils pour réduire une URL directement à partir de votre site, et de la même façons comment récupérer l’url longue à partir d’une url courte.

Pour ce tutoriel il vous faudra:

  • Notions de programmation (conditions, fonctions et boucles, tableaux)
  • La documentation google
  • Des notions de PHP

youtube Ec3v06RgyQE

<?php
class googleShortener{
    /*
    * Permet de réduire une URL
    */
    static function reduce($url){
        $rep = self::send($url);
        return isset($rep['id'])?$rep['id']:false;
    }
    /*
    * Permet de retrouver une URL longue à partir d'une URL courte
    */
    static function expand($url){
        $rep = self::send($url, false);
        return isset($rep['longUrl'])?$rep['longUrl']:false;
    }
    /*
    * Fonction permettant de gérer les connxions aux serveurs de google pour récupérer les information
    */
    static private function send($url, $reduce=true){
        $ch = curl_init();
        if($reduce){
            curl_setopt($ch, CURLOPT_URL, 'https://www.googleapis.com/urlshortener/v1/url');
            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, 'https://www.googleapis.com/urlshortener/v1/url?shortUrl='.$url);
        }
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        $result = curl_exec($ch);
        curl_close($ch);
        return json_decode($result, true);
    }
}