С тех пор, как Google создал свой сервис создания коротких ссылок прошло не мало времени, и вот недавно был опубликован API для работы с этим сервисом.
Дэвид Волш потратил несколько минут на создание удобного PHP класса для работы с API. Давайте посмотрим, что у него получилось...
PHP
Класс выглядит достаточно компактным, а код легко читаемым:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
// Объявляем класс class GoogleUrlApi { // Конструктор function GoogleURLAPI($key,$apiURL = 'https://www.googleapis.com/urlshortener/v1/url') { // API Url $this->apiURL = $apiURL.'?key='.$key; } // Сокращаем URL function shorten($url) { // посылаем информацию $response = $this->send($url); // Возвращаем результат return isset($response['id']) ? $response['id'] : false; } // Разворачиваем URL function expand($url) { // Посылаем информацию $response = $this->send($url,false); // Возвращаем результат return isset($response['longUrl']) ? $response['longUrl'] : false; } // Посылаем информацию Google function send($url,$shorten = true) { // Создаем cURL $ch = curl_init(); // проверяем на короткий URL... 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); } } |
Конструктор требует ваш ключ Google API. Второй аргумент является ссылкой на Google API. А так как API сейчас 1 версии, то изменение этой ссылки принесет больше вреда, чем пользы.
В класс входят два метода: shorten
и expand
. Метод shorten
конвертирует длинную ссылку в короткую, а expand
— короткую в длинную. Если конвертация не состоялась или сервис Google API не работает, то вернется false
.
Не забывайте про это, когда будете использовать этот класс.
Давайте посмотрим на примере, как он работает:
1 2 3 4 5 6 7 8 9 10 |
// Подставляем ключ $key = 'xhjkhzkhfuh38934hfsdajkjaf'; $googer = new GoogleURLAPI($key); // Test: Создаем короткую ссылку $shortDWName = $googer->shorten("http://davidwalsh.name"); echo $shortDWName; // вернется // Test: Создаем длинную ссылку $longDWName = $googer->expand($shortDWName); echo $longDWName; // вернется http://davidwalsh.name |
Сервис Google URL Shortener API обеспечивает гораздо больше функционала, чем задействовано в классе. Например, не реализованы пользовательские списки ссылок и трэкинг. В классе реализованы только основные функции, что и нужно для 90%+ аудитории. Также в классе не предусмотрен механизм кэширования, но так как способов кэширования очень много, то его реализация оставлена для пользователей.
Надеемся, класс будет вам полезен.