Usando encurtador de URL do Google com PHP
Muito útil na hora de tuitar ou enviar um link para alguém é encurtar a URL. Como todos sabem que é um saco estressante ficar entrando no site do encurtador para fazer gerar o novo link. Então porque não gerar isso dinâmico para os visitantes do seu site ou blog ou seja lá o que você utiliza .
##Atenção, essa a API foi descontinuada conforme link https://developers.google.com/url-shortener/v1/getting_started, o conteudo do post ficará disponível apenas por motivos de histórico
Iremos especificar na variável $url o endereço do webservice do Google que irá receber os nossos dados e gerar a URL encurtada
1
$url = 'https://www.googleapis.com/urlshortener/v1/url';
Todos os dados a serem enviados iremos jogar dentro de um array chamado $data. Nosso primeiro dado será a URL que iremos encurtar óbvio não?
1
$data['longUrl'] = 'http://sounoob.com.br/usando-encurtador-de-url-do-google-com-php';
Precisaremos da chave de segurança (API Key) para uso da API do Google, você poderá gerar em http://code.google.com/apis/console/. Sua chave deve ser algo como AIzaSyADeOnBiAo4iOWCjbdPDfXWTVzwwLrymie, agora é só jogar em nosso array.
1
$data['key'] = 'AIzaSyADeOnBiAo4iOWCjbdPDfXWTVzwwLrymie';
Como a API estará esperando os dados em json então usaremos a função json_encode para converter nossos dados para o formato correto.
1
$data = json_encode($data);
Agora que temos tudo que precisamos no formato correto, iremos usar o cURL para se comunicar com o Google.
Para isso iremos iniciar o cURL e informar a URL iniciada no começo.
1
$curl = curl_init($url);
Caso você não tenha o cURL ativo em seu servidor então ocorrerá o erro: Fatal error: Call to undefined function curl_init();
Vamos configurar o cURL para não verificar os certificados SSL do Google.
1
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
Como iremos receber dados de volta do Google então precisamos avisar ao cURL que precisaremos esperar uma resposta.
1
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
Como iremos transportar um json precisaremos definir isso também.
1
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-type:application/json'));
Ultimo parâmetro é informar quais são os dados que serão enviados
1
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
Agora que está tudo configurado é hora de executar o cURL e gravar a resposta na variavel $data
1
$data = curl_exec($curl);
Finalizando o cURL
1
curl_close($curl);
Perfeito, a comunicação foi concluída, agora devemos tratar os dados que recebemos, converter de json para um objeto, afim de conseguirmos manipular com mais facilidade.
1
$data = json_decode($data);
Nossa URL encurtada pode ser recuperada dentro de data -> id
1
echo $data -> id;
Caso você queira incluir um qr code em seu sistema para acesso a esse link, poderemos facilmente gerar a imagem adicionando .qr ao final do nosso link encurtado.
Ficaria algo como
1
echo $data -> id . '.qr';
Isso deverá gerar o endereço similar a esse: http://goo.gl/UP603.qr
Segue código na integra
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
$url = 'https://www.googleapis.com/urlshortener/v1/url';
$data['longUrl'] = 'http://sounoob.com.br/usando-encurtador-de-url-do-google-com-php';
$data['key'] = 'AIzaSyADeOnBiAo4iOWCjbdPDfXWTVzwwLrymie';
$data = json_encode($data);
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-type:application/json'));
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
$data = curl_exec($curl);
curl_close($curl);
$data = json_decode($data);
echo $data -> id;
echo '<br />';
echo $data -> id . '.qr';