Integração com redes sociais usando .NET

Primeiro, vamos definir o que é uma rede social:

Uma rede social é uma estrutura social compostapor pessoas (ou organizações, territórios, etc.) – designadas como nós – que estão conectadas por um ou vários tipos de relações (de amizade, familiares, comerciais, sexuais, etc.), ou que partilham crenças, conhecimento ou prestígio – Wkipedia

Do meu ponto de vista, vejo as ferramentas de networking como Facebook e Linkedin com redes sociais também.

Encurtando URL

Para encurtar a URL utilizaremos o serviço do site tinyurl.com, é muito simples, basta passar chamar a URL http://tinyurl.com/api-create.php, passando o parâmetro url com o caminho completo da sua url, ou seja, ficaria assim, se fôssemos implementar:

http://tinyurl.com/api-create.php?url=SUA_URL

Pré-requisitos

  • .Net Framework 2.0 ou superior
  • Visual Studio 2005 ou compatível

Projeto

Crie um novo Website, na Default.aspx adicione os seguintes controles:

Tipo ID
TextBox UrlTextBox
Button GerarUrlsButton
LinkButton OrkutLinkButton
LinkButton TwitterLinkButton
LinkButton FacebookLinkButton
Label UrlLabel

 

O código da página ficará semelhante com o código abaixo:

<asp:TextBox ID="UrlTextBox" runat="server"></asp:TextBox> <asp:Button ID="GerarUrlsButton" runat="server" Text="Gerar URL's" OnClick="GerarUrlsButton_Click"> </asp:Button> <br /> <asp:LinkButton ID=" OrkutLinkButton" runat="server" Text="Orkut"></asp:LinkButton> <br /> <asp:LinkButton ID="TwitterLinkButton" runat="server" Text="Twitter"></asp:LinkButton> <br /> <asp:LinkButton ID="FacebookLinkButton" runat="server" Text="Facebook"></asp:LinkButton> <br /> asp:Label ID="UrlLabel" runat="server"></asp:Label>

Namespaces

Inclua os seguintes namespaces na sua página:

  • System.Net
  • System.IO
  • System.Text

Code Behind

Eu fiz um método que busca a url resumida no tinyurl, dessa maneira basta apenas adicioná-la a um link.

  /// <summary> /// Devolve a url resumida /// </summary> /// <param name="url">url completa</param> /// <returns>url resumida</returns> protected string ObterUrlCurta(string url) { try { if (!url.ToLower().StartsWith("http") && !url.StartsWith("ftp")) { url = "http://" + url; } WebRequest request = WebRequest.Create("http://tinyurl.com/api-create.php?url=" + url); WebResponse response = request.GetResponse(); string urlCurta = string.Empty; using (StreamReader reader = new StreamReader(response.GetResponseStream())) { urlCurta = reader.ReadToEnd(); } // se tudo der certo, devolve a url resumida return urlCurta; } catch (Exception) { // se ocorrer erro devolve a mesma url return url; } }

Para obter a url do Facebook eu utilizei o seguinte código:

 /// <summary> /// Devolve a url resumida do Facebook /// </summary> /// <param name="urlParaCompartilhar">url que será compartilhada</param> /// <param name="tituloPagina">título da página</param> /// <returns>url resumida do facebook</returns> public string ObterUrlFacebook(string urlParaCompartilhar, string tituloPagina) { StringBuilder url = new StringBuilder(string.Format("http://www.facebook.com/sharer.php?u={0}&t={1}", ObterUrlCurta(urlParaCompartilhar), tituloPagina)); return url.ToString(); }

Para obter a url do Twiiter eu utilizei o seguinte código:

 /// <summary> /// Devolve a url resumida do Twitter /// </summary> /// <param name="urlParaCompartilhar">url que será compartilhada</param> /// <param name="tweet">mensagem/tweet</param> /// <param name="usuarioTwitter">por quem ou qual canal</param> /// <returns>url resumida do twitter</returns> public string ObterUrlTwitter(string urlParaCompartilhar, string tweet, string usuarioTwitter) { StringBuilder url = new StringBuilder(string.Format("http://twitter.com/home?status={0} {1}", ObterUrlCurta(urlParaCompartilhar), tweet)); if (usuarioTwitter != string.Empty) url.Append(string.Format(" - por (@{0})", usuarioTwitter)); return url.ToString(); }

E para o Orkut, utilizei o seguinte código:

 /// <summary> /// Devolve a url resumida do Orkut /// </summary> /// <param name="urlParaCompartilhar">url que será compartilhada</param> /// <param name="tituloPagina">título da página</param> /// <returns>url resumida do orkut</returns> public string ObterUrlOrkut(string urlParaCompartilhar, string tituloPagina) { StringBuilder url = new StringBuilder(string.Format("http://promote.orkut.com/preview?nt=orkut.com&tt={0}&du={1}", ObterUrlCurta(urlParaCompartilhar), tituloPagina)); return url.ToString(); }

No evento onclick do botão GerarUrlsButton, adicione o seguinte código:

/// <summary> /// Gera url's para os links /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void GerarUrlsButton_Click(object sender, EventArgs e) { // limpa os atributos link orkut OrkutLinkButton.Attributes.Clear(); // adiciona o evento onclick chamando a função javascript abrirPagina e passa o parâmetro url OrkutLinkButton.Attributes.Add( "onclick", string.Format( "abrirPagina('{0}');", ObterUrlOrkut( UrlTextBox.Text, "Teste Orkut"))); TwitterLinkButton.Attributes.Clear(); TwitterLinkButton.Attributes.Add( "onclick", string.Format( "abrirPagina('{0}');", ObterUrlTwitter( UrlTextBox.Text, "Teste Twitter", "seu_usuario_twitter_ou_outro"))); FacebookLinkButton.Attributes.Clear(); FacebookLinkButton.Attributes.Add( "onclick", string.Format( "abrirPagina('{0}');", ObterUrlFacebook( UrlTextBox.Text, "Teste Facebook"))); UrlLabel.Text = UrlTextBox.Text; UrlTextBox.Text = string.Empty; }

Muito simples e bem legal, a possibilidade de o visitante ou cliente do site poder compartilhar o conhecimento e gerar conteúdo em redes sociais é muito boa, desde que seu site seja bom, ou sua empresa realmente preste um bom serviço.

Mais uma vez espero que esse artigo contribua para a comunidade.

Referências

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.