Ma

30

Mar

2009

17:58

Nettiosoitteen lyhentäminen

Twitter-mikroblogi kasvattaa jatkuvasti suosiotaan. Palveluun on helppo lisätä lyhyitä viestejä esimerkiksi matkapuhelimella tai netistä. Jotkut päivittävät mikroblogiaan myös ohjelmallisesti API-rajapinnan välityksellä. Twitter rajoittaa viestin pituuden enintään 140 merkkiin, mikä asettaa haasteita ainakin silloin, kun viestiin haluaa lisätä pitkän nettiosoitteen. Osoitteita voi onneksi lyhentää monissa eri palveluissa. Idea on yksinkertainen. Pitkästä osoitteesta muodostetaan lyhyt koodi, joka lisätään lyhennystä tarjoavan palvelun osoitteen perään. Osoitteen voi lyhentää periaatteessa missä palvelussa tahansa, mutta bit.ly on tullut tutuksi erityisesti Twitter-viesteissä.

Bit.ly-palvelussa voi lyhentää pitkän osoitteen joko käsin syöttämällä sen nettisivulla olevaan kenttään tai ohjelmallisesti API-rajapinnan kautta. Rajapinnan käyttö edellyttää ilmaisen käyttäjätilin avaamista. Rekisteröinnissä luodaan yksilöllinen käyttäjätunnus ja samalla saa rajapinnan kutsuissa tarvittavan API-avaimen. Palvelu kerää haluttaessa tilastoa lyhyiden osoitteiden klikkauksista. Olen kirjoittanut pienen PHP-ohjelman, jolla pitkä nettiosoite lyhennetään käyttämällä bit.ly-rajapintaa.

$uid = ’bit.ly-käyttäjätunnus tähän’;
$key = ’API-avain tähän’;
$url = ’pitkä nettiosoite tähän’;

$u = ’http://api.bit.ly/shorten’
. &rsquo?version=2.0.1’
. ’&longUrl=’ . urlencode($url)
. ’&login=’ . $uid
. ’&apiKey=’ . $key
. ’&format=json&history=1’;

$response = file_get_contents($u);

if ($response !== false) {
  $o = json_decode($response, true);
  $short = $o[’results’]["$url"][’shortUrl’];
}

Esimerkissä käytetään JSON-formaattia, mutta palvelusta voi pyytää tuloksen myös XML-muodossa. Kutsun lopussa välitetään history-parametri, joka tallentaa osoitteen historiatietoihin tilastointia varten. Sekä format- että history-parametrit ovat valinnaisia. Palvelu palauttaa tuloksen oletusarvoisesti JSON-muodossa, jota voi käsitellä json_decode()-funktiolla. Tämä funktio tosin toimii vain PHP-versiossa 5.2 ja uudemmissa. Vaihtoehtoisesti voi rakentaa oman JSON-funktion tai käsitellä tuloksia XML-muodossa. Esimerkkikoodini lopputuloksena syntyy $short-muuttujaan lyhyt muoto $url-muuttujassa olevasta pitkästä osoitteesta. Lyhyen osoitteen voi seuraavaksi lisätä varsinaiseen viestiin, joka puolestaan lähetetään Twitteriin.

Tein kokeeksi lyhyen muodon Yleisradion uutisten nettiosoitteesta. Pitkä osoite on http://yle.fi/uutiset ja lyhennettynä se kutistuu muotoon http://bit.ly/4qzWjr. Tässä tapauksessa tosin lyhentämisellä ei juuri saavutettu mitään, mutta lyhentämisen idea tulee kuitenkin esille. Pitkää osoitetta vastaa 4qzWjr-koodi, jonka bit.ly tulkitsee ja purkaa alkuperäiseksi pitkäksi osoitteeksi. Tämän jälkeen palvelu siirtää käyttäjän varsinaiseen osoitteeseen keräten samalla tilastoa lyhyen osoitteen käyttökerroista. Twitter- ja bit.ly-rajapinnoilla on helppo automatisoida mikrobloggaus esimerkiksi osaksi varsinaista verkkoblogia. Uudesta kirjoituksesta tai vanhan muokkauksesta voi lähettää mikroblogiin viestin, jossa on osoite kirjoitukseen ja tällä kertaa merkkien säästämiseksi lyhennetyssä muodossa.

Kirjoita kommentti

Kerro mielipiteesi ja kirjoita kommentti tai viittaa kirjoitukseeni omassa päiväkirjassasi käyttämällä trackback-osoitetta. Kirjoita kommenttisi ilman muotoilua. Anna sähköpostiosoitteesi, jos haluat, että siihen rekisteröity Gravatar näkyy kommentin yhteydessä. Sähköpostiosoitettasi ei julkaista.

Spammers please note, that your comment is mechanically reviewed with Akismet and automatically rejected when found as spam, so there is no use to fill out this comment form if you intend to send a spam comment, sorry.