Usando API do Google para encurtar URL
Artigo em C# mostrando como fazer
Caro(a) Internauta, gostaria de falar hoje como usar API do Google para encurtar as URLs de sites, artigos, aplicativos e tudo mais. Além de encurtar, você pode controlar quantos cliques tiveram no decorrer do tempo.
Características:
Linguagem C#.NET
Plataforma ASP.NET
Ferramenta: Visual Studio 2012
API do Google
O primeiro passo é pegar a chave no site do Google. Para usar qualquer API do Google, você precisa usar uma chave que eles mesmos fornecem ao desenvolvedor. Para isso, acesse o link http://code.google.com/intl/pt-BR/ e crie um novo projeto. Depois de criar o projeto informando o tipo e o que ele vai fazer, basta acessar o link API Access.
Basta copiar o código e usar em seu projeto junto da variável chamada key descrito neste artigo. Depois de abrir o Visual Studio 2012 e criar um projeto do tipo web, dentro do arquivo default.aspx.cs gerei uma classe responsável por usar o serviço encurtador.

É necessário importar algumas classes do Framework .NET, code 1.1. O método recebe um parâmetro do tipo string com o nome da url que deseja encurtar.
[code]
Code 1.1 – Importes
using System.Text.RegularExpressions;
using System.Net;
using System.IO;
using System.Text;
[/code]
Code 1.2 – Nome do Método
[code]
private string encurtador(string url)
[/code]
private string encurtador(string url)
[/code]
O próximo passo foi usar o HttpWebRequest com a url do Google passando como parâmetro alguns valores e a chave. Depois você define o tipo do método, GET ou POST e o tipo do conteúdo com o ContentType, code 1.2.
Code 1.2 – Informando valores para envio
[code]
string key = "xxxxxx mykey xxxxxxx";
string key = "xxxxxx mykey xxxxxxx";
string post = "{\"longUrl\": \"" + url + "\"}";
string shortUrl = url;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://www.googleapis.com/urlshortener/v1/url?key=" + key);
try
{
request.ServicePoint.Expect100Continue = false;
request.Method = "POST";
request.ContentLength = post.Length;
request.ContentType = "application/json";
request.Headers.Add("Cache-Control", "no-cache");
[/code]
Depois que define estes parâmetros, basta enviar a requisição do Stream para pegar a resposta, code 1.3.
Depois que define estes parâmetros, basta enviar a requisição do Stream para pegar a resposta, code 1.3.
Code 1.3 – Usando o Stream
[code]
using (Stream requestStream = request.GetRequestStream())
using (Stream requestStream = request.GetRequestStream())
{
byte[] postBuffer = Encoding.ASCII.GetBytes(post);
requestStream.Write(postBuffer, 0, postBuffer.Length);
}
[/code]
Os bytes retornados são armazenados em uma variável chamada postBuffer que depois reescreve na variável passando a quantidade, code 1.3.
Os bytes retornados são armazenados em uma variável chamada postBuffer que depois reescreve na variável passando a quantidade, code 1.3.
O próximo passo é pegar os dados e retornar ao método que chamou, code 1.4.
Code 1.4 – Pegando a resposta
[code]
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
using (Stream responseStream = response.GetResponseStream())
{
using (StreamReader responseReader = new StreamReader(responseStream))
{
string json = responseReader.ReadToEnd();
shortUrl = Regex.Match(json, @"""id"": ?""(?.+)""").Groups["id"].Value;
}
}
}
[/code]
O dado retornado está no grupo id pela API do Google. O Regex.Match é usado para pegar o dado respondido.
O dado retornado está no grupo id pela API do Google. O Regex.Match é usado para pegar o dado respondido.
No caso de usar esse método dentro de uma rede com Proxy, é necessário passar os parâmetros de autenticação de rede, caso contrário dará erro. Segue em anexo todo o método e a chamada, code 1.5.
Code 1.5 – Todo o método
private string encurtador(string url)
{
string post = "{\"longUrl\": \"" + url + "\"}";
string shortUrl = url;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://www.googleapis.com/urlshortener/v1/url?key=" + key);
try
{
request.ServicePoint.Expect100Continue = false;
request.Method = "POST";
request.ContentLength = post.Length;
request.ContentType = "application/json";
request.Headers.Add("Cache-Control", "no-cache");
using (Stream requestStream = request.GetRequestStream())
{
byte[] postBuffer = Encoding.ASCII.GetBytes(post);
requestStream.Write(postBuffer, 0, postBuffer.Length);
}
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
using (Stream responseStream = response.GetResponseStream())
{
using (StreamReader responseReader = new StreamReader(responseStream))
{
string json = responseReader.ReadToEnd();
shortUrl = Regex.Match(json, @"""id"": ?""(?.+)""").Groups["id"].Value;
}
}
}
}
catch (Exception ex)
{
// if Google's URL Shortner is down...
System.Diagnostics.Debug.WriteLine(ex.Message);
System.Diagnostics.Debug.WriteLine(ex.StackTrace);
}
return shortUrl;
}
protected void Page_Load(object sender, EventArgs e)
{
encurtador("http://www.ecode10.com");
}
Para acessar o site do Google a fim de ver as urls geradas, basta digitar o endereço http://goo.gl/ e logar com seu usuário.
Espero que tenha gostado e qualquer dúvida pode entrar em contato pelo site.
Subscribe ecode10.com
Receive our latest updates about programming languages, software, database, books, ebooks, classes, jobs and more.
You can cancel anytime.
Log In