От автора: при посещении веб-страниц очень часто необходимо выкладывать ссылки на различные интернет ресурсы, к примеру, форум или социальные сети. Но некоторые из них содержат огромное количество символов, что существенно ухудшает их читаемость. К тому же, очень длинная ссылка, при установленном ограничении вводимых символов, может существенно уменьшить добавляемое сообщение. Поэтому в данном уроке, мы с Вами рассмотрим очень удобный сервис от компании Google, который позволяет уменьшить длину Ваших ссылок.
1. Знакомство с сервисом Google URL Shortener
Существует множество различных сервисов, которые позволяют уменьшить длину ссылок. В этом уроке мы с Вами познакомимся с очень удобным и простым сервисом Google URL Shortener, который позволяет создавать короткие ссылки и к тому же вести учет переходов по ним.
Его работа сводится к следующему: пользователь добавляет длинную ссылку в сервис Google URL Shortener, далее данная ссылка заносится в базу данных и для нее генерируется специальный уникальный идентификатор. Который, добавляется к короткому адресу goo.gl, и тем самым формируется короткая ссылка. При переходе по данной ссылке, пользователь будет перенаправлен на адрес оригинальной длинной ссылки.
Теперь давайте перейдем на главную страницу сервиса Google URL Shortener – //goo.gl. При этом необходимо авторизироваться, то есть у Вас должен быть акаунт Google.
Первое, что бросается в глаза – это текстовое поле, для добавления ссылки (длинной ссылки). Ниже будут отображены все Ваши добавленные URL адреса и сгенерированные короткие ссылки. Теперь давайте добавим несколько адресов:
Обратите внимание на таблицу под текстовым полем, добавления нового адреса. Здесь представлена таблица, в которой выводятся все Ваши добавленные ссылки. В поле Long URL выводятся оригинальные ссылки (длинные), в поле Short URL выведены сгенерированные короткие ссылки. Поле Created – показывает, когда именно была создана ссылка. Details напротив каждой ссылки, ведет на страницу просмотра статистических данных о каждой ссылке. К примеру, количество переходов по ней и т.д. Поэтому давайте перейдем на данную страницу:
Как Вы видите достаточно простой и полезный сервис. Но помимо ручного добавления ссылок, мы можем выполнять аналогичное действие программно, используя API данного сервиса. Поэтому давайте рассмотрим, как с ним работать.
2. Активация проекта для использования
Для начала необходимо перейти в консоль Google Api и создать проект. Поэтому переходим на сайт //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 и первым делом добавим следующий код:
1 2 |
define ("AUTH_KEY","AIzaSyD3UhWsCEFNlW100pQI_1XQDgEJRMWCOHo"); define ("API_URL","//www.googleapis.com/urlshortener/v1/url"); |
То есть создаем две константы, которые необходимы для работы скрипта. Первая AUTH_KEY – ключ авторизации, который мы создали ранее. Вторая API_URL – путь, по которому нужно отправить специальный запрос, для добавления ссылок.
Сразу хочу привести ссылку на страницу документации API сервиса Google URL Shortener — //developers.google.com/url-shortener/?hl=ru&csw=1
Дальше мы с Вами создадим функцию, которая будет добавлять ссылки в сервис и читать статистические данные уже добавленных ссылок. Поэтому создаем функцию send():
1 2 3 |
function send($long_url=FALSE, $short_url=FALSE) { } |
Обратите внимание, что функция будет принимать два параметра: $long_url – “длинная ссылка” – если необходимо добавить ссылку в сервис; $short_url – “короткая ссылка” – если необходимо прочитать данные уже добавленной ссылки.
Дальнейший код будем вести в теле данной функции.
Для добавления ссылки в сервис Google URL Shortener, необходимо отправить запрос типа POST на адрес //www.googleapis.com/urlshortener/v1/url?key=keyAPI (данный адрес мы сохранили в константе API_URL). Где keyAPI – Ваш ключ авторизации. Данные, которые необходимо отправить:
1 |
{"longUrl": "//www.google.com/"} |
Как Вы заметили – это данные в формате JSON и при отправке необходимо отправить заголовок, с указанием типа контента: Content-Type: application/json
Для отправки запроса, мы используем библиотеку libcurl, которая позволяет отправлять запросы (данные) на сервер, используя различные протоколы. Поэтому первым делом инициализируем сеанс cURL:
1 |
$ku = curl_init(); |
Так как при отправке запроса, необходимо использовать протокол https, значит (в данном случае), необходимо отключить проверку сертификата и общего имени сертификата:
1 2 |
curl_setopt($ku,CURLOPT_SSL_VERIFYPEER,FALSE); curl_setopt($ku,CURLOPT_SSL_VERIFYHOST,FALSE); |
Затем, для того что бы получить ответ от переданного запроса в виде json строки, зададим еще одну настройку:
1 |
curl_setopt($ku,CURLOPT_RETURNTRANSFER,TRUE); |
Теперь, мы с Вами условились ,что функция будет выполнять два действия, значит необходимо выполнить проверку:
1 2 3 4 5 |
if($long_url) { } elseif($short_url) { } |
То есть, если был передан параметр $long_url, значит необходимо добавить ссылку в сервис Google URL Shortener. Далее кодирование ведем в блоке if (к блоку else мы еще вернемся). Теперь необходимо указать, что мы будем передавать данные методом POST:
1 |
curl_setopt($ku,CURLOPT_POST,TRUE); |
Далее указать, какие именно данные будем передавать:
1 |
curl_setopt($ku,CURLOPT_POSTFIELDS,json_encode(array("longUrl"=>$long_url))); |
То есть на сервер мы передаем массив «longUrl»=>$long_url, и предварительно конвертируем его в строку JSON, используя метод json_encode(). Затем указываем, что необходимо отправить заголовок с типом контента:
1 |
curl_setopt($ku,CURLOPT_HTTPHEADER,array("Content-Type:application/json")); |
И последнее, мы должны задать путь, по которому будет отправлен запрос:
1 |
curl_setopt($ku,CURLOPT_URL,API_URL."?key=".AUTH_KEY); |
Как Вы видите, обязательно необходимо передавать параметр key – это созданный ранее ключ авторизации. Теперь, опускаемся за пределы условного оператора if-else и выполним соединение:
1 |
$result = curl_exec($ku); |
При этом, в переменную $result, попадет ответ от сервера, в формате строки JSON. Давайте превратим его в объект и вернем, как результат работы функции в целом:
1 2 3 |
$result = curl_exec($ku); curl_close($ku); return json_decode($result); |
Теперь осталось вызвать данную функцию и проверить работоспособность скрипта:
1 2 |
$res = send("//yandex.ru"); print_r($res); |
Давайте перейдем в браузер и посмотрим, что у нас получилось:
Действительно возвращается объект, поэтому давайте выведем результат в более красивом виде:
1 2 3 |
<p style="border:1px solid green;padding:5px"> Короткая ссылка: <?php echo $res->id;?> </p> |
И вот, что мы получим на экране:
Теперь давайте выполним несколько переходов по полученной короткой ссылке и выведем на экран ее статистические данные:
4. Получение информации о добавленных ссылках
Для того бы получить информацию о добавленных ссылках, необходимо отправить данные методом GET, на тот же адрес, что и в предыдущем примере. В качестве данных нужно отправить ключ авторизации и параметр shortUrl, то есть ранее созданную короткую ссылку. Вот таким образом: //www.googleapis.com/urlshortener/v1/url? key=keyAPI&shortUrl=”короткий адрес”
Поэтому вернемся в файл index.php и в блок else добавим следующий код:
1 |
curl_setopt($ku,CURLOPT_URL,API_URL."?key=".AUTH_KEY."&shortUrl=".$short_url."&projection=ANALYTICS_CLICKS"); |
Тем самым мы формируем адрес для curl соединения. Так же обратите внимание, я добавляю еще один GET параметр — projection=ANALYTICS_CLICKS, который позволит вернуть в результирующем объекте количество кликов по созданной короткой ссылке. На этом код функции полностью завершен.
Давайте вызовем ее второй раз, только теперь передадим ей в качестве второго параметра, ссылку, которую мы получили при первом вызове функции:
1 2 |
$res2 = send(FALSE,$res->id); print_r($res2); |
Как Вы видите, опять же мы получили объект, содержащий информацию о ссылке. Здесь и оригинальная ссылка (“длинная”) и ее статус, и количество просмотров за разные периоды времени. Давайте более красиво выведем на экран информацию о ссылке:
1 2 3 4 5 6 |
<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, надеюсь, он Вас заинтересовал, и Вы будете использовать его в своих наработках.
На этом давайте прощаться. Всего Вам доброго и удачного кодирования!!!
Комментарии (1)