Creare Short links con API goo.gl

Qualche giorno fa mi è capitato di dover implementare su uno dei miei siti il servizio gratuito per accorciare i links offerto da google (goo.gl appunto), quando segue è un esempio di ciò che ho fatto, spero possa esserti utile!

Per prima cosa bisogna ottenere un API Key da Google Developer Console, per farlo basta accedere a APIs Console, sotto “APIs & Auth” cliccare su “APIs” e attivare il servizio chiamato “URL Shortener API”.

Quindi cliccare su “URL Shortener API -> Quota -> API Access” e quindi  creare la API Key cliccando su “Create new Browser Key” e specificando il dominio utilizzato.

Poi ho creato un semplice modulo form con un campo di testo e un pulsante per l’invio:

<form name="form1" method="post" action="">
<input type="text" name="longurl" id="longurl">
<input type="submit" name="button" id="button" value="Invia">
</form>

A questo punto basta creare con PHP lo script vero e proprio per la richiesta JSON, ecco il mio:

if( isset( $_POST['longurl'] && filter_var( $_POST['longurl'], FILTER_VALIDATE_URL ) !== false ) {
$api_key = "inserire qui la propria API Key";
$postData = array( 'longUrl' => $_POST['longurl'], 'key' => $api_key );
$jsonData = json_encode($postData);
$curlObj = curl_init();
curl_setopt($curlObj, CURLOPT_URL, 'https://www.googleapis.com/urlshortener/v1/url');
curl_setopt($curlObj, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curlObj, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curlObj, CURLOPT_HEADER, 0);
curl_setopt($curlObj, CURLOPT_HTTPHEADER, array('Content-type:application/json'));
curl_setopt($curlObj, CURLOPT_POST, 1);
curl_setopt($curlObj, CURLOPT_POSTFIELDS, $jsonData);
$response = curl_exec($curlObj);
$json = json_decode($response);
curl_close($curlObj);
echo 'Lo short link per questo URL è: '.$json->id;
}

Documentazione ufficiale API goo.gl (in inglese)

Hai delle idee o dei suggerimenti per migliorare questo articolo? Lascia un commento qui sotto!

Ilario Pellandini

::: Certified Web developer 2006-2018 ::: ::: www.IPELWEB.com :::

More Posts - Website