URL Shortener API — создание коротких ссылок

URL Shortener API - создание коротких ссылок

От автора: при посещении веб-страниц очень часто необходимо выкладывать ссылки на различные интернет ресурсы, к примеру, форум или социальные сети. Но некоторые из них содержат огромное количество символов, что существенно ухудшает их читаемость. К тому же, очень длинная ссылка, при установленном ограничении вводимых символов, может существенно уменьшить добавляемое сообщение. Поэтому в данном уроке, мы с Вами рассмотрим очень удобный сервис от компании Google, который позволяет уменьшить длину Ваших ссылок.

скачать исходникискачать урок

1. Знакомство с сервисом Google URL Shortener

Существует множество различных сервисов, которые позволяют уменьшить длину ссылок. В этом уроке мы с Вами познакомимся с очень удобным и простым сервисом Google URL Shortener, который позволяет создавать короткие ссылки и к тому же вести учет переходов по ним.

Его работа сводится к следующему: пользователь добавляет длинную ссылку в сервис Google URL Shortener, далее данная ссылка заносится в базу данных и для нее генерируется специальный уникальный идентификатор. Который, добавляется к короткому адресу goo.gl, и тем самым формируется короткая ссылка. При переходе по данной ссылке, пользователь будет перенаправлен на адрес оригинальной длинной ссылки.

Теперь давайте перейдем на главную страницу сервиса Google URL Shortener – http://goo.gl. При этом необходимо авторизироваться, то есть у Вас должен быть акаунт Google.

Первое, что бросается в глаза – это текстовое поле, для добавления ссылки (длинной ссылки). Ниже будут отображены все Ваши добавленные URL адреса и сгенерированные короткие ссылки. Теперь давайте добавим несколько адресов:

Обратите внимание на таблицу под текстовым полем, добавления нового адреса. Здесь представлена таблица, в которой выводятся все Ваши добавленные ссылки. В поле Long URL выводятся оригинальные ссылки (длинные), в поле Short URL выведены сгенерированные короткие ссылки. Поле Created – показывает, когда именно была создана ссылка. Details напротив каждой ссылки, ведет на страницу просмотра статистических данных о каждой ссылке. К примеру, количество переходов по ней и т.д. Поэтому давайте перейдем на данную страницу:

Как Вы видите достаточно простой и полезный сервис. Но помимо ручного добавления ссылок, мы можем выполнять аналогичное действие программно, используя API данного сервиса. Поэтому давайте рассмотрим, как с ним работать.

2. Активация проекта для использования

Для начала необходимо перейти в консоль Google Api и создать проект. Поэтому переходим на сайт https://code.google.com/apis/console/:

Для создания проекта достаточно кликнуть по кнопке Create project. Затем необходимо на вкладке APIs выбрать сервис для работы:

Нас интересует сервис URL Shortener, поэтому находим его в списке и кликаем по заголовку:

Активируем данный сервис, нажав на кнопку On. Далее необходимо получить ключ авторизации, который необходим для использования сервиса URL Shortener. Для этого перейдем на вкладку Credentials и создадим Public Api Key, нажав на кнопку Create new key:

Далее нажимаем кнопку Browser key, для создания авторизационного ключа для браузерных приложений.

3. Добавление коротких ссылок, используя API Google URL Shortener

Теперь можно создать небольшой скрипт, который будет добавлять ссылки в сервис Google URL Shortener и соответственно возвращать короткие. Для этого создадим пустой файл index.php и первым делом добавим следующий код:

define ("AUTH_KEY","AIzaSyD3UhWsCEFNlW100pQI_1XQDgEJRMWCOHo");
define ("API_URL","https://www.googleapis.com/urlshortener/v1/url");

То есть создаем две константы, которые необходимы для работы скрипта. Первая AUTH_KEY – ключ авторизации, который мы создали ранее. Вторая API_URL – путь, по которому нужно отправить специальный запрос, для добавления ссылок.
Сразу хочу привести ссылку на страницу документации API сервиса Google URL Shortener — https://developers.google.com/url-shortener/?hl=ru&csw=1

Дальше мы с Вами создадим функцию, которая будет добавлять ссылки в сервис и читать статистические данные уже добавленных ссылок. Поэтому создаем функцию send():

function send($long_url=FALSE, $short_url=FALSE) {
	
}

Обратите внимание, что функция будет принимать два параметра: $long_url – “длинная ссылка” – если необходимо добавить ссылку в сервис; $short_url – “короткая ссылка” – если необходимо прочитать данные уже добавленной ссылки.
Дальнейший код будем вести в теле данной функции.

Для добавления ссылки в сервис Google URL Shortener, необходимо отправить запрос типа POST на адрес https://www.googleapis.com/urlshortener/v1/url?key=keyAPI (данный адрес мы сохранили в константе API_URL). Где keyAPI – Ваш ключ авторизации. Данные, которые необходимо отправить:

{"longUrl": "http://www.google.com/"}

Как Вы заметили – это данные в формате JSON и при отправке необходимо отправить заголовок, с указанием типа контента: Content-Type: application/json

Для отправки запроса, мы используем библиотеку libcurl, которая позволяет отправлять запросы (данные) на сервер, используя различные протоколы. Поэтому первым делом инициализируем сеанс cURL:

$ku = curl_init();

Так как при отправке запроса, необходимо использовать протокол https, значит (в данном случае), необходимо отключить проверку сертификата и общего имени сертификата:

curl_setopt($ku,CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($ku,CURLOPT_SSL_VERIFYHOST,FALSE);

Затем, для того что бы получить ответ от переданного запроса в виде json строки, зададим еще одну настройку:

curl_setopt($ku,CURLOPT_RETURNTRANSFER,TRUE);

Теперь, мы с Вами условились ,что функция будет выполнять два действия, значит необходимо выполнить проверку:

if($long_url) {
		
	}
	elseif($short_url) {
			}

То есть, если был передан параметр $long_url, значит необходимо добавить ссылку в сервис Google URL Shortener. Далее кодирование ведем в блоке if (к блоку else мы еще вернемся). Теперь необходимо указать, что мы будем передавать данные методом POST:

curl_setopt($ku,CURLOPT_POST,TRUE);

Далее указать, какие именно данные будем передавать:

curl_setopt($ku,CURLOPT_POSTFIELDS,json_encode(array("longUrl"=>$long_url)));

То есть на сервер мы передаем массив «longUrl»=>$long_url, и предварительно конвертируем его в строку JSON, используя метод json_encode(). Затем указываем, что необходимо отправить заголовок с типом контента:

curl_setopt($ku,CURLOPT_HTTPHEADER,array("Content-Type:application/json"));

И последнее, мы должны задать путь, по которому будет отправлен запрос:

curl_setopt($ku,CURLOPT_URL,API_URL."?key=".AUTH_KEY);

Как Вы видите, обязательно необходимо передавать параметр key – это созданный ранее ключ авторизации. Теперь, опускаемся за пределы условного оператора if-else и выполним соединение:

$result = curl_exec($ku);

При этом, в переменную $result, попадет ответ от сервера, в формате строки JSON. Давайте превратим его в объект и вернем, как результат работы функции в целом:

$result = curl_exec($ku);
curl_close($ku);
return json_decode($result);

Теперь осталось вызвать данную функцию и проверить работоспособность скрипта:

$res = send("http://yandex.ru");
print_r($res);

Давайте перейдем в браузер и посмотрим, что у нас получилось:

Действительно возвращается объект, поэтому давайте выведем результат в более красивом виде:

<p style="border:1px solid green;padding:5px">
	Короткая ссылка: <?php echo $res->id;?>
</p>

И вот, что мы получим на экране:

Теперь давайте выполним несколько переходов по полученной короткой ссылке и выведем на экран ее статистические данные:

4. Получение информации о добавленных ссылках

Для того бы получить информацию о добавленных ссылках, необходимо отправить данные методом GET, на тот же адрес, что и в предыдущем примере. В качестве данных нужно отправить ключ авторизации и параметр shortUrl, то есть ранее созданную короткую ссылку. Вот таким образом: https://www.googleapis.com/urlshortener/v1/url? key=keyAPI&shortUrl=”короткий адрес”

Поэтому вернемся в файл index.php и в блок else добавим следующий код:

curl_setopt($ku,CURLOPT_URL,API_URL."?key=".AUTH_KEY."&shortUrl=".$short_url."&projection=ANALYTICS_CLICKS");

Тем самым мы формируем адрес для curl соединения. Так же обратите внимание, я добавляю еще один GET параметр — projection=ANALYTICS_CLICKS, который позволит вернуть в результирующем объекте количество кликов по созданной короткой ссылке. На этом код функции полностью завершен.

Давайте вызовем ее второй раз, только теперь передадим ей в качестве второго параметра, ссылку, которую мы получили при первом вызове функции:

$res2 = send(FALSE,$res->id);
print_r($res2);

Как Вы видите, опять же мы получили объект, содержащий информацию о ссылке. Здесь и оригинальная ссылка (“длинная”) и ее статус, и количество просмотров за разные периоды времени. Давайте более красиво выведем на экран информацию о ссылке:

<p style="border:1px solid green;padding:5px">
	Данные по короткой ссылке: <?php echo $res2->id;?><br />
	---- Полная ссылка: <?php echo $res2->longUrl;?><br />
	---- Статус: <?php echo $res2->id;?><br />
	---- Клики: <?php echo $res2->analytics->allTime->shortUrlClicks;?><br />
</p>

И посмотрим, что у нас получилось:

Как Вы видите все успешно отработало. Вот и все, то я хотел сказать по сервису Google URL Shortener, надеюсь, он Вас заинтересовал, и Вы будете использовать его в своих наработках.

На этом давайте прощаться. Всего Вам доброго и удачного кодирования!!!

Практика HTML5 и CSS3 с нуля до результата!

Получите бесплатный пошаговый видеокурс по основам адаптивной верстки с полного нуля на HTML5 и CSS3

Получить

Метки: ,

Комментарии Вконтакте:

Комментарии Facebook:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Я не робот.

Spam Protection by WP-SpamFree