Від автора: при відвідуванні веб-сторінок дуже часто необхідно викладати посилання на різні інтернет-ресурси, наприклад, форум або соціальні мережі. Але деякі з них містять величезну кількість символів, що суттєво погіршує їх сприйняття. До того ж, дуже довга посилання, при встановленому обмеження символів, може істотно зменшити нове повідомлення. Тому в даному уроці ми з Вами розглянемо дуже зручний сервіс від компанії 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”);
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);
Давайте перейдемо в браузер і подивимося, що у нас вийшло:
Дійсно повертається об’єкт, тому давайте виведемо результат у більш красивому вигляді:
Коротке посилання: id;?>
І ось, що ми отримаємо на екрані:
Тепер давайте виконаємо кілька переходів за отриманою коротким посиланням і виведемо на екран її статистичні дані:
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);
Як Ви бачите, знову ж ми отримали об’єкт, що містить інформацію про посиланню. Тут і оригінальна посилання (“довга”) та її статус, і кількість переглядів за різні періоди часу. Давайте більш красиво виведемо на екран інформацію про ссылке:
Дані за коротким посиланням: id;?>
—- Повна посилання: longUrl;?>
—- Статус: id;?>
—- Кліки: analytics->allTime->shortUrlClicks;?>
І подивимося, що у нас вийшло:
Як Ви бачите все успішно відпрацювала. Ось і все, що я хотів сказати з сервісу Google URL Shortener, сподіваюся, він Вас зацікавив, і Ви будете використовувати його у своїх напрацюваннях.
На цьому давайте прощатися. Всього Вам доброго і вдалого кодування!!!