Do que se trata o artigo:

O artigo mostra a integração de aplicações web a redes sociais utilizando o framework Spring Social. São discutidas também as características desta integração e é construído um exemplo prático para demostrar o potencial do Spring Social.

Em que situação o tema útil:

Os conceitos e o exemplo apresentados podem servir de referência a equipes de desenvolvimento que têm a missão de socializar uma aplicação web existente, em especial aplicações web desenvolvidas com a tecnologia Java, com o auxílio do framework Spring Social.

Integrando aplicações web com as redes sociais:

Apresentaremos neste artigo a construção de uma aplicação web que faz uso das redes sociais Facebook e Twitter através do uso do framework Spring Social. A partir de um exemplo prático, são demonstradas algumas das vantagens que uma aplicação web pode ter ao usufruir dos serviços das redes sociais. Além disso, são demonstradas as facilidades que o Spring Social provê na integração com as redes sociais.

Atualmente os componentes mais relevantes da internet são as redes sociais. Estas redes são sites ou aplicativos moldados pelo relacionamento existente entre as pessoas. Elas permitem uma fácil comunicação entre amigos e colegas e a conexão entre pessoas de diversos locais do mundo com afinidades em comum. Por meio destes relacionamentos, as pessoas compartilham fotos, vídeos, ideias, experiências, jogam games, geram opinião, compram e vendem produtos, entre tantas outras possibilidades.

A crescente expansão do uso das redes sociais modificou o modo como as pessoas utilizam a Internet. Pesquisas apontam que as pessoas realizaram boa parte da navegação da internet, desde compras a entretenimento, dentro destes sites. Com estes indícios, as aplicações web convencionais ficam cada vez mais relegadas a segundo plano, perdendo a sua importância dentro da internet gradativamente.

Diante deste cenário, existe a necessidade das aplicações web serem integradas neste contexto social. A integração com as redes sociais, também chamada de socialização das aplicações web, possibilita que estas se adequem à demanda de seus usuários e tirem proveito dos serviços oferecidos por estas redes. Dentre as vantagens que uma aplicação web pode ter ao se integrar com uma rede social, podemos citar:

• Extensão das opções disponíveis nas redes sociais ao qual o usuário já está acostumado, por exemplo, a opção Curtir do Facebook, a opção Retweet do Twitter, etc.;

• Grande disponibilidade de dados nas redes sociais. Estes podem ser extraídos de acordo com as necessidades da aplicação;

• Extração de informações sobre o usuário, o que possibilita uma relação mais pessoal entre a aplicação e o usuário;

• Possibilidade do usuário se autenticar na aplicação utilizando as credenciais que possui em alguma rede social, descartando desta forma a necessidade de efetuar um novo cadastro;

• Estreitamento na comunicação entre aplicação (empresa) e usuário. Relacionamento mais ágil e direto, pois a aplicação pode mandar uma mensagem diretamente ao usuário pela rede social;

• Personificação da sua aplicação, a chamada Identidade Web, na qual perfis sociais da sua aplicação ou empresa são mantidos na rede social;

• A rede social é um ótimo canal para divulgar e promover uma aplicação.

Com base nisso, este artigo visa demonstrar de forma prática a integração de aplicações web convencionais com as redes sociais através do uso do framework Spring Social. A partir de um exemplo prático, construiremos uma aplicação web Java que utiliza este framework para se comunicar com o Twitter e Facebook.

Integração com as redes sociais através do Spring Social

As redes sociais possibilitam a sua integração com outras aplicações através da disponibilização de uma API (Application Programming Interface) de serviços por meio de Web Services. Web Services é uma solução utilizada na integração de sistemas e na comunicação entre aplicações diferentes. No caso específico do nosso exemplo, haverá a comunicação da aplicação que criaremos com o Facebook e com o Twitter.

Com o objetivo de facilitar esta comunicação e oferecer uma ferramenta capaz de socializar as aplicações web, foi criado o Spring Social, uma extensão do framework Spring com funcionalidades para consumir os serviços providos pelas APIs das redes sociais de forma transparente ao desenvolvedor. Isto é, sem que este tenha que se preocupar com os detalhes de comunicação existentes neste tipo de operação.

Na realidade, o Spring Social é capaz de utilizar os serviços não apenas das redes sociais, mas sim de teoricamente todas as APIs de serviços disponibilizadas na web. As empresas e sites que disponibilizam estas APIs são chamados de provedores de serviços Web, categoria na qual se enquadram as redes sociais. Este framework oferece suporte a uma vasta gama de provedores de serviço web, por exemplo, Twitter, Facebook, LinkedIn, TripIt, GitHub, Gowalla, etc. e seu uso pode ser facilmente estendido para suportar novos provedores que possam aparecer no futuro.

Com a utilização do Spring Social, uma aplicação web pode facilmente se conectar com os provedores de serviços e fazer uso de suas respectivas APIs. Neste contexto em que uma aplicação utiliza um serviço de algum provedor, a aplicação é comumente chamada de aplicação consumidora.

Para exemplificar a integração de aplicações web com as redes sociais através do framework Spring Social, criaremos uma aplicação web chamada SocialTV, que se integrará com as redes sociais Twitter e Facebook.

Especificação da aplicação web de exemplo

A SocialTV é uma aplicação web de uma empresa fictícia de TV por assinatura de mesmo nome, que disponibiliza aos seus usuários um serviço de avisos sobre a programação da TV de acordo com as preferências de cada usuário. Por exemplo, suponha que há um usuário na aplicação SocialTV que tem o interesse cadastrado no programa “Two and a half men”. Quando este programa entrar na grade de programação da TV, um aviso a este usuário será enviado, informando o canal, data e horário em que o programa será exibido.

A aplicação SocialTV se integrará com as redes sociais Facebook e Twitter. O Twitter será utilizado para enviar os avisos sobre a programação aos usuários, e o Facebook será utilizado como página corporativa da SocialTV, para relacionamento com os usuários. Também através do Facebook os usuários poderão se autenticar na SocialTV, não havendo a necessidade dos mesmos criarem um cadastro no sistema. A Figura 1 mostra os casos de uso da aplicação.

Figura 1. Casos de Uso da SocialTV.

Como podemos verificar no diagrama de Casos de Uso, existem dois atores distintos na aplicação, o administrador e o usuário.

Ator Usuário

Na aplicação de exemplo, o usuário do sistema é o indivíduo que quer receber avisos sobre a programação da TV de acordo com os seus interesses. Este se autentica na SocialTV utilizando credenciais que obrigatoriamente deve possuir no Facebook. No momento em que um usuário se autentica no sistema pelo Facebook, é criado implicitamente uma conta de usuário SocialTV em um banco de dados local para este usuário.

A seguir, se encontra uma descrição dos casos de uso do usuário:

Vincula perfil do Twitter: o usuário logado na aplicação deve vincular um perfil do Twitter com a sua conta de usuário SocialTV. O usuário irá receber os avisos da programação pelo Twitter, por meio de mensagens diretas enviadas pelo perfil do sistema;

Cadastra lista de interesses: após o usuário vincular um perfil do Twitter, o sistema recupera do Facebook uma lista de interesses que o usuário possui em filmes, músicas e programas de televisão. Caso não seja encontrada nenhuma destas informações, a aplicação mostra uma mensagem avisando que o cadastro da lista de interesses não pode ser efetuado. Quando a lista de interesses é encontrada, o usuário tem a opção de cadastrá-la no sistema, e futuramente ele será avisado via Twitter quando um de seus programas favoritos entrar na grade de programação da TV.

Ator Administrador

O administrador do sistema tem o papel de cadastrar a programação da TV e de manter os perfis sociais corporativos da SocialTV no Twitter e Facebook.

A autenticação do administrador ao sistema é feita utilizando credenciais de acesso armazenadas em um banco de dados local.

A implementação dos casos de Uso do administrador do sistema será feita na segunda parte do artigo.

O administrador pode executar os seguintes casos de uso:

Vincula perfil do Twitter: os administradores do sistema necessitam vincular à respectiva conta de acesso ao sistema, um perfil corporativo da SocialTV no Twitter. Este perfil irá representar a SocialTV no Twitter, e através dele serão enviados os avisos sobre a programação da TV a todos os usuários cadastrados neste serviço;

Vincula perfil do Facebook: O administrador deve associar à respectiva conta de acesso ao sistema, um perfil social do Facebook que esteja configurado como administrador da página corporativa da SocialTV no Facebook. Podem existir um ou mais administradores de uma página corporativa no Facebook, e os detalhes da criação destas páginas corporativas serão abordados na segunda parte do artigo. Todos os usuários que curtirem a página corporativa da SocialTV vão receber as atualizações da programação no respectivo perfil social, como acontece com um feed de notícias;

Cadastra programação da TV: O administrador cadastra a programação da TV informando o nome do programa, o canal, o dia e o horário em que cada programa será exibido. A programação recém-criada é divulgada no Facebook. No caso de haver algum usuário que tenha cadastrado o interesse por um programa existente na grade, a aplicação enviará, através do perfil corporativo da SocialTV no Twitter, uma mensagem direta para o perfil do usuário. Esta mensagem enviada contém o aviso sobre a programação que acabou de ser criada.

Detalhes da integração com as redes sociais

Aparentemente pode parecer fácil a integração de uma aplicação com provedores de serviços Web, pelo simples fato de que a maioria destes provedores oferece seus serviços no formato de uma API REST. Uma API REST é uma forma de disponibilização de serviços na internet pelo uso de Web Services. Estes serviços são disponibilizados utilizando uma forma estruturada no seu respectivo endereço (URL). Por exemplo, na API do Facebook, os endereços dos serviços que retornam a lista de filmes, música e livros de um usuário são respectivamente:

• https://graph.facebook.com/me/movies?access_token=...;

• https://graph.facebook.com/me/music?access_token=...;

• https://graph.facebook.com/me/books?access_token=....

Como pode ser observado, as URLs dos serviços da API do Facebook são bem estruturadas, e isto é geralmente uma característica de todas as APIs REST. Esta padronização visa facilitar o consumo dos serviços pelas aplicações consumidoras. Como já citado, aplicação consumidora é a aplicação que faz uso das APIs de provedores de serviços Web. No exemplo utilizado, a aplicação consumidora é a SocialTV.

Infelizmente as APIs das diferentes redes sociais não são iguais entre si. Elas possuem diferentes conceitos, diferentes estruturas nas URLs das APIs, diferentes formatos (JSON, XML, RSS) e diferentes tratamentos de exceções.

Além disso, os serviços providos pelas redes sociais quase sempre contêm dados pessoais de seus usuários, como por exemplo, fotos, amigos, mensagens, etc. Desta forma estes serviços necessitam da autorização do usuário para serem utilizados por outras aplicações. Por isto, a integração com as redes sociais é feita por um acordo entre as três partes envolvidas:

• Provedor de serviço (Twitter, Facebook);

• Usuário;

• Aplicação consumidora a qual o usuário deseja compartilhar seus dados (SocialTV).

A boa notícia é que a maioria dos provedores de serviços (Yahoo, Google, Facebook, Twitter, LinkedIn, etc.) utilizam o mesmo protocolo, chamado OAuth, para autorizar o acesso aos dados de seus usuários. OAuth é um protocolo aberto que possibilita aos usuários a permissão ou negação do acesso aos seus dados contidos em um provedor de serviço, por parte de uma aplicação consumidora. O OAuth ainda gerencia as operações que a aplicação consumidora é autorizada a realizar em nome do usuário, por exemplo, apenas operações de leitura ou operações de leitura e escrita, etc. A Figura 2 mostra a tela que o LinkedIn utiliza para que o usuário autorize o acesso dos seus dados por uma aplicação consumidora.

Figura 2. Tela de autorização do LinkedIn.

Embora a adoção do OAuth pela maioria dos provedores de serviço seja benéfica por criar um padrão, a sua utilização não é uma tarefa trivial. O OAuth possui três versões distintas: OAuth 1.0, OAuth, 1.0a e OAuth 2. As redes sociais utilizadas na SocialTV são divergentes quanto à versão do OAuth que adotam. O Twitter utiliza a versão 1.0a, enquanto o Facebook utiliza a versão 2.

...
Quer ler esse conteúdo completo? Tenha acesso completo