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
- http://socialbookmarks.codeplex.com/
- http://shareourideas.wordpress.com/2010/03/13/orkut-bookmark-url-format/
- http://blastersystems.com/blog/?p=221
- http://tinyurl.com/
- http://msdn.microsoft.com/pt-br/library/system.net.webrequest(VS.90).aspx
- http://msdn.microsoft.com/pt-br/library/system.net.webresponse(VS.90).aspx
- http://msdn.microsoft.com/pt-br/library/system.io.streamreader(VS.90).aspx