Google URL Shortener и Ruby

Зачем?

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

Хау-ту

Воспользоваться API очень просто. Достаточно перейти сюда и вставить свою ссылку.
Лично меня данный способ не устраивал, т.к. для меня формирование ссылок автоматически было приоритетной задачей.
Для получения короткого URL достаточно использовать следующую команду в cURL-cli:

curl https://www.googleapis.com/urlshortener/v1/url \  
-H 'Content-Type: application/json' \  
-d '{"longUrl": "http://www.google.com/"}'

В официальной документации к API сказано, что для получения увеличенного лимита запросов в день требуется создать API ключ и передавать его в теле запроса. Стоит заметить, что передача ключа в запросе позволяет идентифицировать пользователя, создавшего короткую ссылку.
Для использования API в полной мере следует:

Google Library Pic

  • Подключить URL Shortener API
  • Создать новый API ключ

Код на Ruby

Теперь мы можем использовать его для автоматической генерации коротких ссылок.
Для этого я написал небольшой скрипт на Ruby:

require 'net/http'
require 'json'

url = "https://www.googleapis.com/urlshortener/v1/url?key=YOUR_API_KEY"
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri.request_uri,  'Content-Type' => 'application/json')
request.body = {longUrl: "http://www.example.com"}.to_json

json_response = http.request(request)
response = JSON.parse json_response.body
short_url = response['id']


Related Posts