Beruflich Dokumente
Kultur Dokumente
Pesquisar
Home Entenda o site Revistas Tecnologias Cursos Loja Virtual Frum Servios Publicar A ssine Compre Crditos
Seja bem-vindo, CA RLOS A LBERTO DA COSTA RA MOS! Fale conosco Meus Servios
2 Curtir 3 0 0
comentrios
Tipo: Tutorial
O artigo mostra o poder das redes sociais como canal de comunicao com as
pessoas, os benefcios existentes na integrao de aplicaes com as redes sociais
e o framework Spring Social como agente facilitador desta integrao.
Atualmente, com a importncia cada vez maior das redes sociais na vida das pessoas e
a necessidade que estas sentem em criar relacionamentos, compartilhar fatos e
expressar opinies nestas redes, se torna fundamental o estudo e uso destas por
devmedia.com.br//26810 1/21
empresas, governos, pesquisadores, pessoas pblicas, etc.
Com base nisso, a partir de um exemplo, iremos criar neste artigo um canal de
comunicao entre uma aplicao web e os telespectadores de uma empresa fictcia de
TV nas redes sociais. Para atingir este objetivo, sero criados perfis corporativos no
Facebook e no Twitter. Neste momento, discutiremos os detalhes ao redor da criao
destes perfis corporativos, mostrando dicas teis para uma melhor apresentao do
perfil nas redes sociais. Posteriormente, ser abordada a utilizao do framework
Spring Social, como agente facilitador no estabelecimento da comunicao entre a
aplicao web e as redes sociais.
Na Edio 109, foi abordado o desenvolvimento dos casos de uso efetuados pelo ator
Usurio. Nesta edio, abordaremos o desenvolvimento dos casos de uso realizados
pelo Administrador do sistema e tambm a criao das pginas corporativas no
Facebook.
devmedia.com.br//26810 3/21
10/01/13 Integrando aplicaes web com as redes sociais - Revista Java Magazine 111
Marca ou produto;
Entretenimento;
Causa ou comunidade.
importante ressaltar que um mesmo usurio pode administrar mais de uma pgina
do Facebook ao mesmo tempo, e que uma pgina pode ter N administradores.
devmedia.com.br//26810 4/21
10/01/13 Integrando aplicaes web com as redes sociais - Revista Java Magazine 111
devmedia.com.br//26810 5/21
10/01/13 Integrando aplicaes web com as redes sociais - Revista Java Magazine 111
19 value="/resources/
20 scripts/jquery-1.7.2.min.js" />"></script>
21 <script type="text/javascript" src="<c:url
22 value="/resources/
23 scripts/jquery-ui-1.8.21.custom.min.js" />"></script>
24 <title>SocialTV Home Page</title>
25 <script>
26 $(document).ready(function (){
27 $('#navigation a').hover(
28 function(){
29 $(this).addClass('navHover');
30 }
31 , function() {
32 $(this).removeClass('navHover');
33 }
34 );
35 });
36 </script>
37 </head>
38 <body><h3>Bem vindo, ${usuario.nome}</h3><hr/>
39 <c:if test="${mensagemErro != null }">
40 <div class="ui-widget">
41 <div class="ui-state-error ui-corner-all"
42 style="margin-top: 20px; padding: 0 .7em;">
43 <p><span class="ui-icon ui-icon-circle-close"
44 style="float: left; margin-right: .3em;">
45 </span>${mensagemErro}</p>
46 </div></div>
47 </c:if>
48 <span>Opes</span>
49 <ul id="navigation">
50 <li>
51 <a href='<c:url value="/admin/incluirProgramacao"/>'>
52 Incluir programa na grade</a>
53 </li>
54 <li>
55 <a href='<c:url value="/connect/facebook"/>'>
56 Vincular seu usurio ao facebook?</a>
57 </li>
58 <li>
59 <a href='<c:url value="/connect/twitter"/>'>
60 Vincular seu usurio ao twitter?</a>
61 </li>
62 </ul>
63 </body>
64 </html>
devmedia.com.br//26810 6/21
10/01/13 Integrando aplicaes web com as redes sociais - Revista Java Magazine 111
recomendado ao leitor testar o caso de uso Vincula perfil do Twitter para ter
certeza de que o mesmo est funcionando e tambm para vincular a conta corporativa
da SocialTV no twitter conta do administrador do sistema.
Lembrando que uma requisio HTTP do tipo GET pode ser feita atravs de hyperlinks
HTML, como fizemos na pgina home.jsp (Listagem 2). Nesta pgina temos os
seguintes links:
http://localhost:8080/SocialTv/connect/facebook;
http://localhost:8080/SocialTv/connect/twitter.
No primeiro link, estamos iniciando uma requisio para vnculo com o Facebook e no
segundo link, uma requisio para vnculo com o Twitter. Se tivssemos criado um
terceiro link, trocando o valor da varivel {provedor} por linkedin, estaramos da
mesma forma iniciando a criao de um vnculo com a rede social profissional de
mesmo nome. Os valores da varivel {provedor} devem ser iguais ao valor do Id das
redes sociais utilizados pelo Spring Social. Dentro do nosso exemplo, os valores
devem ser iguais a facebook ou twitter.
Para este caso de uso em especfico, estamos interessados na criao do vnculo com
o Facebook, ento a URL http://localhost:8080/SocialTv/connect/facebook dever ser
utilizada. Se o leitor, atravs da pgina home.jsp, tentar acessar este link, ir receber
uma pgina de erro. Isto acontece porque todas as requisies efetuadas para a nossa
devmedia.com.br//26810 7/21
10/01/13 Integrando aplicaes web com as redes sociais - Revista Java Magazine 111
aplicao com a URL /connect/{provedor} so interceptadas pelo controlador de
conexes do Spring Social, e este controlador exige a criao de duas pginas JSP,
chamadas respectivamente de connect/{provedor}Connect.jsp e
connect/{provedor}Connected.jsp. Como ainda no criamos estas pginas para o
Facebook, o erro acontece. As Listagens 3 e 4 mostram respectivamente o cdigo
para a pgina facebookConnect.jsp e facebookConnected.jsp. importante ressaltar
que estas pginas devem ser criadas dentro do diretrio WEB-INF/views/connect.
devmedia.com.br//26810 8/21
10/01/13 Integrando aplicaes web com as redes sociais - Revista Java Magazine 111
24 <a href='<c:url value="/"/>'>Voltar a pgina principal</a>
25 </body>
26 </html>
Esta pgina apresenta ao usurio um boto que inicia o processo de integrao entre
usurio logado, SocialTV e Facebook. Ao clicar no boto, uma requisio HTTP do tipo
POST com a URL igual a /connect/{provedor} enviada a SocialTV. Como discutido
anteriormente, as requisies com este padro de URL so interceptadas pelo
controlador de conexes do Spring Social. Toda a requisio do tipo POST que
recebida pelo controlador de conexes tratada como uma conexo nova, a ser criada
com o provedor de servios utilizado, neste caso o Facebook. Ento, ao receber esta
requisio, o controlador inicia o processo de autorizao junto ao provedor de
servios, e uma tela pedindo autorizao ao usurio para que a SocialTV acesse seus
dados exibida. A Figura 7 mostra a tela de autorizao exibida pelo Facebook.
Como pode ser visto na Figura 7, o aplicativo chamado CWByte IT Services (nesta
tela ser mostrado o nome do aplicativo do Facebook criado pelo leitor no artigo
devmedia.com.br//26810 9/21
10/01/13 Integrando aplicaes web com as redes sociais - Revista Java Magazine 111
anterior) est pedindo acesso s informaes bsicas do usurio na rede social. As
informaes bsicas so dados como id, nome, foto, sexo, etc. Este acesso no
suficiente para os administradores da SocialTV, pois estes precisam de autorizao
para acessar a pgina corporativa da TV no Facebook e tambm precisam de acesso
para publicar contedo (publicar a programao da TV na pgina corporativa).
Quando o usurio autoriza a conexo com o aplicativo da SocialTV (Figura 7), ele
redirecionado para a pgina mostrada na Figura 8. Esta pgina pede permisso ao
usurio para que o aplicativo utilizado na aplicao consumidora tenha acessos
adicionais. Para este caso, os acessos adicionais so os de Gerenciar suas pginas e
Publicar em seu nome.
Figura 9. Tela facebookConnected, que confirma que uma conexo com o Facebook
foi criada.
Como prova de conceito, o leitor pode executar um comando SQL para retornar os
registros da tabela userconnection e verificar a existncia de um registro, que associa
o usurio admin rede social Facebook.
devmedia.com.br//26810 10/21
10/01/13 Integrando aplicaes web com as redes sociais - Revista Java Magazine 111
1 @RequestMapping(value="/admin/incluirProgramacao",
2 method=RequestMethod.GET)
3 public String incluirProgramacao(Model model){
4
5 //se o usurio no estiver vinculado nem a twitter nem
6 a facebook ento geramos um erro
7 if(!isUserAuthenticatedOnFacebook() ||
8 !isUserAuthenticatedOnTwitter()){
9 model.addAttribute("mensagemErro", "Sua conta de usurio
10 deve ser associado ao Facebook e Twitter.");
11 return "home";
12 }
13
14 Programacao programacao = new Programacao();
15 programacao.setHoraInicio("12:00");
16 model.addAttribute("programacao", programacao);
17
18 return "incluirProgramacao";
19 }
1 package br.com.javamagazine.socialtv.model;
2
3 import java.util.Date;
4 import org.springframework.format.annotation.DateTimeFormat;
5
6 public class Programacao {
devmedia.com.br//26810 11/21
10/01/13 Integrando aplicaes web com as redes sociais - Revista Java Magazine 111
7
8 private Integer idf;
9 private String nomePrograma;
10 private String canal;
11
12 @DateTimeFormat(pattern="dd/MM/yyyy")
13 private Date dataInicio;
14
15 private String horaInicio;
16
17 public Integer getIdf() {
18 return idf;
19 }
20
21 public void setIdf(Integer idf) {
22 this.idf = idf;
23 }
24
25 public String getNomePrograma() {
26 return nomePrograma;
27 }
28
29 public void setNomePrograma(String nomePrograma) {
30 this.nomePrograma = nomePrograma;
31 }
32
33 public String getCanal() {
34 return canal;
35 }
36
37 public void setCanal(String canal) {
38 this.canal = canal;
39 }
40
41 public Date getDataInicio() {
42 return dataInicio;
43 }
44
45 public void setDataInicio(Date dataInicio) {
46 this.dataInicio = dataInicio;
47 }
48
49 public String getHoraInicio() {
50 return horaInicio;
51 }
52
53 public void setHoraInicio(String horaInicio) {
54 this.horaInicio = horaInicio;
55 }
56 }
O mtodo controlador que adicionamos na Listagem 5 tem como retorno uma String
com o valor incluirProgramacao. Este resultado referente ao nome da pgina JSP
que exibir a resposta requisio do usurio. A Listagem 7 contm o cdigo de tal
pgina, chamada incluirProgramacao.jsp. Salientando novamente a necessidade das
pginas JSP serem criadas dentro do folder WEB-INF/views.
devmedia.com.br//26810 12/21
10/01/13 Integrando aplicaes web com as redes sociais - Revista Java Magazine 111
7 type="text/css" media="screen" />
8 <link rel="stylesheet" href="<c:url value="/resources/css/base.css" />"
9 type="text/css"/>
10 <script type="text/javascript" src="<c:url value="/resources/scripts/
11 jquery-1.7.2.min.js" />"></script>
12 <script type="text/javascript" src="<c:url value="/resources/scripts/
13 jquery-ui-1.8.21.custom.min.js" />"></script>
14 <script type="text/javascript">
15 $(function() {
16 $("#txtDataInicio").datepicker(
17 { dateFormat : "dd/mm/yy", showOn : "button", buttonImage :
18 '<c:url value="/resources/images/bt_calendario.gif"/>',
19 buttonImageOnly : true
20 }
21 );
22 });
23 </script>
24 </head>
25 <body>
26 <div id="mensagemContainer">
27 <c:if test="${mensagemErro != null }">
28 <div class="ui-widget">
29 <div class="ui-state-error ui-corner-all"
30 style="margin-top: 20px; padding: 0 .7em;">
31 <p>
32 <span class="ui-icon ui-icon-circle-close"
33 style="float: left; margin-right: .3em;"></span>
34 ${mensagemErro}
35 </p> </div> </div> </c:if>
36 <c:if test="${mensagemSucesso != null }">
37 <div class="ui-widget">
38 <div class="ui-state-highlight ui-corner-all"
39 style="margin-top: 20px; padding: 0 .7em;">
40 <p>
41 <span class="ui-icon ui-icon-circle-check"
42 style="float: left; margin-right: .3em;"></span>
43 ${mensagemSucesso}
44 </p> </div></div> </c:if></div>
45 <form:form method="post" modelAttribute="programacao">
46 <table><tr>
47 <td><form:label path="nomePrograma">Nome do Programa:</form:label></td>
48 <td><form:input path="nomePrograma" id="txtNomePrograma" size="50"/></td>
49 </tr><tr>
50 <td><form:label path="canal">Canal:</form:label></td>
51 <td><form:select path="canal">
52 <form:option value="AXN"/>
53 <form:option value="Cinemax"/>
54 <form:option value="Discovery Kids"/>
55 <form:option value="Discovery Channel"/>
56 <form:option value="Disney"/>
57 <form:option value="ESPN"/>
58 <form:option value="Fox"/>
59 <form:option value="FX"/>
60 <form:option value="HBO"/>
61 <form:option value="Megapix"/>
62 <form:option value="MTV"/>
63 <form:option value="Multishow"/>
64 <form:option value="Playboy"/>
65 <form:option value="SportTV"/>
66 </form:select>
67 </td></tr> <tr>
68 <td><form:label path="dataInicio">Data:</form:label></td>
69 <td>
70 <form:input path="dataInicio" size="16" maxlength="12"
71 id="txtDataInicio" readonly="true" cssClass="disabled"/>
72 </td> </tr> <tr>
73 <td><form:label path="horaInicio">Horrio:</form:label></td>
74 <td>
75 <form:select path="horaInicio">
devmedia.com.br//26810 13/21
10/01/13 Integrando aplicaes web com as redes sociais - Revista Java Magazine 111
76 <form:option value="01:00"/><form:option value="02:00"/>
77 <form:option value="03:00"/><form:option value="04:00"/>
78 <form:option value="05:00"/><form:option value="06:00"/>
79 <form:option value="07:00"/><form:option value="08:00"/>
80 <form:option value="09:00"/><form:option value="10:00"/>
81 <form:option value="11:00"/><form:option value="12:00"/>
82 <form:option value="13:00"/><form:option value="14:00"/>
83 <form:option value="15:00"/><form:option value="16:00"/>
84 <form:option value="17:00"/><form:option value="18:00"/>
85 <form:option value="19:00"/><form:option value="20:00"/>
86 <form:option value="21:00"/><form:option value="22:00"/>
87 <form:option value="23:00"/><form:option value="24:00"/>
88 </form:select>
89 </td></tr><tr>
90 <td colspan="2"><input type="submit" value="Adicionar"/></td>
91 </tr>
92 </table>
93 </form:form>
94 </body>
95 </html>
1 @RequestMapping(value="/admin/incluirProgramacao",
2 method=RequestMethod.POST)
3 public String incluirProgramacao_Adicionar
4 (@ModelAttribute("programacao") Programacao programacao, Model model){
5
6 String erroValidacao = "";
7
8 if(programacao.getNomePrograma() == null ||
9 programacao.getNomePrograma().isEmpty()){
10 erroValidacao = "Nome do programa obrigatrio!<br/>";
11 }
12
13 if(programacao.getDataInicio() == null){
14 erroValidacao += "Data obrigatrio!";
15 }
16
17 if(!erroValidacao.isEmpty()){
18 model.addAttribute("mensagemErro", erroValidacao);
19 return "incluirProgramacao";
20 }
21
22 try {
23 service.adicionarProgramacao(programacao);
24 model.addAttribute("mensagemSucesso",
25 "Programao criada com sucesso.");
devmedia.com.br//26810 14/21
10/01/13 Integrando aplicaes web com as redes sociais - Revista Java Magazine 111
26 List<Usuario> usuarios = service.getUsuariosPorPreferencia
27 (programacao.getNomePrograma());
28 String avisoProgramacao = criarMensagemDeAviso(programacao);
29 enviarAvisoDeProgramacaoAosUsuarios(usuarios, avisoProgramacao);
30 enviarMensagemViaFacebook(avisoProgramacao);
31 } catch (Exception e) {
32 e.printStackTrace();
33 model.addAttribute("mensagemErro", "Erro ao tentar inserir
34 programao no Banco de Dados!");
35 }
36
37 return "incluirProgramacao";
38 }
Este mtodo, primeiramente, faz a validao dos dados inseridos pelo administrador
para ter certeza de que nenhum campo obrigatrio foi deixado em branco. Aps a
validao do formulrio, no cdigo que se encontra dentro do bloco try/catch, existe
muita coisa acontecendo, e iremos explanar uma a uma a seguir. O leitor pode
perceber a existncia de alguns erros de compilao, pois alguns mtodos e classes
utilizados neste cdigo ainda no foram criados.
Como a anotao @Inject indica, o objeto SocialTvService ser injetado pelo Spring
na classe controladora.
1 package br.com.javamagazine.socialtv.service;
2
3 //imports omitidos...
4
5 @Service
6 public class SocialTvService {
7
8 @Inject JdbcTemplate jdbcTemplate;
9 @Transactional public void gravarInteressesUsuario
10 (Usuario usuario) throws Exception {
11 for (Interesse interesse : usuario.getInteresses()) {
12 gravarInteresseUsuario(usuario.getUserId(), interesse);
13 }
14 }
15
16 private void gravarInteresseUsuario(final String userId,
17 final Interesse interesse) throws SQLException {
18 String sql = "INSERT INTO INTERESSES_USUARIO " +
19 "(userId, DES_INTERESSE, URL_FOTO_INTERESSE) VALUES (?,?,?)";
20 jdbcTemplate.update(sql, new PreparedStatementSetter() {
21 @Override
22 public void setValues(PreparedStatement ps) throws SQLException {
23 ps.setString(1, userId);
24 ps.setString(2, interesse.getDescricao());
25 String urlFoto = interesse.getUrlFoto();
devmedia.com.br//26810 15/21
10/01/13 Integrando aplicaes web com as redes sociais - Revista Java Magazine 111
26 if(urlFoto.length() > 200)
27 urlFoto= urlFoto.substring(0, 200);
28 ps.setString(3, urlFoto);
29 }
30 });
31 }
32
33 @Transactional public void adicionarProgramacao
34 (final Programacao programacao) throws Exception{
35 String sql = "INSERT INTO PROGRAMACAO(NOME_PROGRAMA, CANAL, "
36 + " DATA_INICIO, HORA_INICIO) VALUES (?,?,?,?)";
37
38 jdbcTemplate.update(sql, new PreparedStatementSetter() {
39 @Override
40 public void setValues(PreparedStatement ps) throws SQLException {
41 int rowIndex = 1;
42 ps.setString(rowIndex++, programacao.getNomePrograma());
43 ps.setString(rowIndex++, programacao.getCanal());
44 ps.setDate(rowIndex++, new java.sql.Date(programacao
45 .getDataInicio().getTime()));
46 ps.setString(rowIndex++, programacao.getHoraInicio());
47 }
48 });
49 }
50
51 @Transactional(readOnly = true) public List<Interesse>
52 getInteressesDoUsuario(String userId) {
53 final List<Interesse> interesses = new ArrayList<Interesse>();
54 String sql = "SELECT DES_INTERESSE, URL_FOTO_INTERESSE "
55 + " FROM INTERESSES_USUARIO WHERE userId = ?";
56 jdbcTemplate.query(sql, new Object[] { userId },
57 new RowCallbackHandler() {
58 @Override
59 public void processRow(ResultSet rs) throws SQLException {
60 Interesse interesse = new Interesse();
61 interesse.setDescricao(rs.getString("DES_INTERESSE"));
62 interesse.setUrlFoto(rs.getString("URL_FOTO_INTERESSE"));
63 interesses.add(interesse);
64 }
65 });
66 return interesses;
67 }
68
69 @Transactional(readOnly = true) public List<Usuario>
70 getUsuariosPorPreferencia(String nomePrograma) {
71 final ArrayList<Usuario> usuarios = new ArrayList<Usuario>();
72 String sql = "SELECT uc.userId, uc.providerId, uc.providerUserId "+
73 " FROM INTERESSES_USUARIO iu " +
74 " JOIN userconnection uc on uc.userId = iu.userId " +
75 " WHERE UPPER(iu.DES_INTERESSE) like '"+nomePrograma + "%'";
76 jdbcTemplate.query(sql,
77 new RowCallbackHandler() {
78 @Override
79 public void processRow(ResultSet rs) throws SQLException {
80 String userId = rs.getString("userId");
81 Usuario usuario = new Usuario(userId, userId);
82 usuario.setProviderId(rs.getString("providerId"));
83 usuario.setProviderUserId(rs.getString("providerUserId"));
84 usuarios.add(usuario);
85 }
86 }
87 );
88 return usuarios;
89 }
90 }
devmedia.com.br//26810 16/21
10/01/13 Integrando aplicaes web com as redes sociais - Revista Java Magazine 111
SocialTV, a gerao dos avisos da programao da TV. Para isso, necessrio a
recuperao de todos os usurios que tenham cadastrado o interesse no programa
recm-criado. Isto feito no mtodo
SocialTvService.getUsuariosPorPreferencia(), que retorna uma lista de usurios
que possuem interesse no programa passado como parmetro. Estes usurios so
encontrados por meio de uma consulta SQL realizada no banco de dados local.
Listagem 11. Cdigo dos mtodos para envio do aviso da programao (Twitter e
Facebook).
devmedia.com.br//26810 17/21
10/01/13 Integrando aplicaes web com as redes sociais - Revista Java Magazine 111
O mtodo enviarMensagemViaFacebook() envia a mensagem de aviso sobre a
programao como um POST na pgina corporativa da SocialTV. No incio da sua
execuo existe uma validao para verificar se o administrador do sistema possui uma
conta do Facebook associada. Isto acontece atravs do mtodo
isUserAuthenticadedOnFacebook(). Tambm existe a verificao para checar se o
administrador possui ao mnimo uma pgina desta rede social, a qual seja o
responsvel. Isto feito atravs da comparao
facebook.pageOperations().getAccounts() != null. Aps a validao,
recuperado o ID da pgina corporativa da SocialTV, com o cdigo
facebook.pageOperations().getAccounts().get(0).getId(). Este trecho de cdigo
parte do princpio de que o usurio administrador do sistema SocialTV gerencia apenas
uma pgina corporativa e, por isso, recupera a primeira pgina associada a ele,
utilizando o ndice zero (getAccounts.get(0)). Caso o administrador gerenciasse mais
de uma pgina, outro mecanismo seria necessrio para recuperar o ID da pgina
corporativa da SocialTV. De posse do ID da pgina corporativa, delegado ao mtodo
enviarMensagemViaRedeSocial() a postagem da mensagem de aviso sobre a
programao. O cdigo responsvel pela postagem mostrado na Listagem 12.
Listagem 12. Trecho de cdigo responsvel por enviar o aviso sobre a programao
SocialTV pgina da TV no Facebook.
Listagem 13. Trecho de cdigo responsvel por enviar o aviso sobre a programao
por mensagem direta via Twitter.
Testando a aplicao
Depois de toda a parte de codificao da SocialTV, chega a esperada hora de testar a
aplicao e aproveitar as funcionalidades e facilidades providas pelo Spring Social.
Na tela da Figura 10, o link Vincular seu usurio ao twitter? deve ser clicado para a
criao do vnculo com a conta do Twitter pela qual o usurio receber os avisos da
programao. Aps a criao do vnculo com o Twitter, ao voltar pgina principal
(novamente na Figura 10), haver um boto com a opo Receber aviso sobre a
Programao SocialTV. Este boto responsvel por, de fato, registrar os interesses
do usurio na base de dados da SocialTV.
devmedia.com.br//26810 18/21
Com os interesses do leitor cadastrados na SocialTV no papel de usurio, pode-se
ento sair do sistema e executar os casos de teste do administrador. importante
que o leitor neste momento ou execute os testes do administrador em um browser
diferente ou ento acesse as pginas do Facebook e Twitter e efetue o logout dessas
aplicaes explicitamente.
Figura 12. Aviso enviado por mensagem direta via Twitter para usurio cadastrado.
Concluses
Atualmente as redes sociais tm grande importncia na vida das pessoas,
principalmente pelo grande poder de comunicao e interao que proporcionam. Estas
redes tambm comeam a despertar interesse de organizaes corporativas e
governamentais, que cada vez mais se dedicam em entender, utilizar e estudar os seus
efeitos.
Por isso, existe uma demanda crescente por profissionais de TI com domnio das
mdias sociais e que possuam um grande entendimento sobre a arquitetura e
funcionamento das redes sociais. Entre os desafios atribudos a estes profissionais
est a extrao de dados relevantes, gerenciamento da satisfao dos clientes,
campanhas de marketing, gerenciamento de marca, relacionamento com o cliente,
estudo de tendncias e comportamento. Enfim, so vrias as aplicaes e
10/01/13 Integrando aplicaes web com as redes sociais - Revista Java Magazine 111
possibilidades orbitando em torno destas redes.
A utilizao dos dados e servios disponveis nas redes sociais acontece por meio da
integrao com outras aplicaes, chamadas de aplicaes consumidoras. Estas
aplicaes se integram com as redes sociais para geralmente estender funcionalidades
ou criar novas funcionalidades no presentes nessas redes. No entanto, esta
integrao no simples, e por isso foi oferecido ao leitor uma opo bastante
poderosa na resoluo deste problema, o framework Spring Social.
Links
Download do Tomcat.
http://tomcat.apache.org/index.html
Download do jQuery.
http://jquery.com/
Edwins Leonardi
Ps-graduando do curso de Tecnologias Web da PUC-PR. Atualmente trabalha na IBM como IT Specialist. Atua h mais de
devmedia.com.br//26810 20/21
10/01/13 Integrando aplicaes web com as redes sociais - Revista Java Magazine 111
sete anos com desenvolvimento de sistemas Java. Possui as certificaes SCJP, SCWCD e SCBCD.
0 COMENTRIO
Administrao do Firebird/InterBase
[Ver todos]
DevMedia no Facebook
Curtir 5.546
A lexandre Kelv in F ernando Jeser A ndr A manda M anuel Jos Digo Regiane
2013 - Todos os Dire itos R e se rvados a web-03 P lug-in social do F acebook
devmedia.com.br//26810 21/21