URL Shortener API — створення коротких посилань

722

Від автора: при відвідуванні веб-сторінок дуже часто необхідно викладати посилання на різні інтернет-ресурси, наприклад, форум або соціальні мережі. Але деякі з них містять величезну кількість символів, що суттєво погіршує їх сприйняття. До того ж, дуже довга посилання, при встановленому обмеження символів, може істотно зменшити нове повідомлення. Тому в даному уроці ми з Вами розглянемо дуже зручний сервіс від компанії Google, який дозволяє зменшити довжину Ваших посилань.

URL Shortener API — створення коротких посиланьURL Shortener API — створення коротких посилань

1. Знайомство з сервісом Google URL Shortener

Існує безліч різних сервісів, які дозволяють зменшити довжину посилань. У цьому уроці ми з Вами познайомимося з дуже простим і зручним сервісом Google URL Shortener, який дозволяє створювати короткі посилання і до того ж вести облік переходів з ним.

Його робота зводиться до наступного: користувач додає довгу посилання в сервіс Google URL Shortener, далі дана посилання заноситься в базу даних і для неї генерується спеціальний унікальний ідентифікатор. Який додається до короткого адресою goo.gl, і тим самим формується коротке посилання. При переході по даному посиланню, користувач буде перенаправлено на адресу оригінальної довгою посилання.

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

URL Shortener API — створення коротких посилань

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

URL Shortener API — створення коротких посилань

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

URL Shortener API — створення коротких посилань

Як Ви бачите досить простий і корисний сервіс. Але крім ручного додавання посилань, ми можемо виконувати аналогічну дію програмно, використовуючи API даного сервісу. Тому давайте розглянемо, як з ним працювати.

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

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

URL Shortener API — створення коротких посилань

Для створення проекту досить клацнути по кнопці Create project. Потім необхідно на вкладці APIs вибрати сервіс для роботи:

URL Shortener API — створення коротких посилань

Нас цікавить сервіс URL Shortener, тому знаходимо його в списку і клікаєм по заголовку:

URL Shortener API — створення коротких посилань

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

URL Shortener API — створення коротких посилань

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

URL Shortener API — створення коротких посилань

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”);
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);

Давайте перейдемо в браузер і подивимося, що у нас вийшло:

URL Shortener API — створення коротких посилань

Дійсно повертається об’єкт, тому давайте виведемо результат у більш красивому вигляді:

Коротке посилання: id;?>

І ось, що ми отримаємо на екрані:

URL Shortener API — створення коротких посилань

Тепер давайте виконаємо кілька переходів за отриманою коротким посиланням і виведемо на екран її статистичні дані:

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);

URL Shortener API — створення коротких посилань

Як Ви бачите, знову ж ми отримали об’єкт, що містить інформацію про посиланню. Тут і оригінальна посилання (“довга”) та її статус, і кількість переглядів за різні періоди часу. Давайте більш красиво виведемо на екран інформацію про ссылке:

Дані за коротким посиланням: id;?>
—- Повна посилання: longUrl;?>
—- Статус: id;?>
—- Кліки: analytics->allTime->shortUrlClicks;?>

І подивимося, що у нас вийшло:

URL Shortener API — створення коротких посилань

Як Ви бачите все успішно відпрацювала. Ось і все, що я хотів сказати з сервісу Google URL Shortener, сподіваюся, він Вас зацікавив, і Ви будете використовувати його у своїх напрацюваннях.

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