Encurtando URL com o Google.
Com ja postei sobre como encurtar uma url com o bit.ly, criei uma clase bem simples para fazer o mesmo utilizando o encurtador do Google, apesar de ter outras opções que podemos utilizar na Api como buscar dados estatísticos de uma url, optei por fazer somente o encurtamento de uma URL que pode ser utilizado rapidamente , com o mínimo de esforço e pode ser utilizado em qualquer aplicação.
O único requisito é que se tenha uma chave do Google Api que você pode conseguir em http://code.google.com/apis/console/.
É necessário o uso do CURL, específicamente da função curl_exe que em alguns serviços de hospedagem fica desabilitado por medida de segurança, portanto verifique a disponibilidade desta função para que a classe funcione normalmente
/**INICIANDO A CLASSE **/
class GoogleUrl {
/** CONSTRUTOR**/
function GoogleUrl($chave,$apiURL = 'https://www.googleapis.com/urlshortener/v1/url') {
/** MONTA A URL**/
$this->apiURL = $apiURL.'?key='.$chave;
}
/**Encurtar a URL**/
function encurtar($url) {
/** Envia a informação e retorna a resposta **/
$resposta = $this->enviar($url);
return isset($resposta['id']) ? $resposta['id'] : false;
}
/**Envia a informação para a API do Google **/
function enviar($url) {
/** Inicia o curl**/
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$this->apiURL);
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,json_encode(array("longUrl"=>$url)));
curl_setopt($ch,CURLOPT_HTTPHEADER,array("Content-Type: application/json"));
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
/** Executar o Post **/
$result = curl_exec($ch);
/** Fechar a Conexão **/
curl_close($ch);
/** Retorna o Resultado **/
return json_decode($result,true);
}
}
A classe pega a url indicada e envia a Api do google que nos retorna a url ja formatada com o encurtador do google, caso haja algum problema neste processo a classe retornará false. A sua utilização é bem fácil como descrito abaixo:
/** UTILIZAÇÃO **/
$chave = 'xhjkhzkhfuh38934hfsdajkjaf';
$google = new GoogleUrl($chave);
/** Encurtar a url **/
$urlCurta = $google->encurtar("http://www.andersongarcia.com");
echo $urlCurta;
Inicia-se a classe e utiliza-se a função encurtar(), esta função vai retornar a url do encurtador do google como é o esperado. Simples assim.