Você está na página 1de 88

UNIVERSIDADE DO PLANALTO CATARINENSE CURSO DE SISTEMAS DE INFORMAO (BACHARELADO)

FELIPE DE BONA SARTOR

SERVIO WEB DE INTEGRAO DE DADOS COM A REDE SOCIAL DO FACEBOOK

LAGES (SC) 2012

FELIPE DE BONA SARTOR

SERVIO WEB DE INTEGRAO DE DADOS COM A REDE SOCIAL DO FACEBOOK

Trabalho de Concluso de Curso submetido Universidade do Planalto Catarinense para obteno dos crditos de disciplina com nome equivalente no curso de Sistemas de Informao Bacharelado.

Orientao: Prof. Alexandre Rech, Bel.

LAGES (SC) 2012

FELIPE DE BONA SARTOR

SERVIO WEB DE INTEGRAO DE DADOS COM A REDE SOCIAL DO FACEBOOK


ESTE RELATRIO, DO TRABALHO DE CONCLUSO DE CURSO, FOI JULGADO ADEQUADO PARA OBTENO DOS CRDITOS DA DISCIPLINA DE TRABALHO DE CONCLUSO DE CURSO, DO 8. SEMESTRE, OBRIGATRIA PARA OBTENO DO TTULO DE: BACHAREL EM INFORMAO SISTEMAS DE

Lages (SC), 12 de setembro de 2012.

Prof. Alexandre Rech, Bel. Orientador

BANCA EXAMINADORA:

Prof. Hugo Estevam Romeu Longo, Bel. UNIPLAC

Prof. Edson Roberto Souza Paes, M.Sc. UNIPLAC

Prof. Sabrina Bet Koerich, M.Sc Coordenador de Curso / Professor de TCC

Dedico este trabalho a minha me, o qual realizou este sonho junto comigo, mostrando que possvel sim, para aqueles que acreditam e se esforam.

Agradeo aquele que me criou e colocou neste mundo, o meu Deus. Obrigado por ter me dado fora suficiente para concluir esta etapa da minha vida. Agradeo ao meu amigo Esprito Santo, que me conduziu sempre para o caminho certo. Agradeo aos meus amigos do trabalho, da faculdade, da igreja, e aqueles que me apoiaram durante o desenvolvimento deste trabalho. Agradeo ao meu orientador e amigo Alexandre Rech. Agradeo a toda a minha famlia pelo incentivo e compreenso que foi fundamental para a concluso deste trabalho.

O SENHOR a minha rocha, a minha fortaleza e o meu libertador. O meu Deus uma rocha em que me escondo. Ele me protege como um escudo; ele o meu abrigo, e com ele estou seguro. (Salmos 18:2)

LISTA DE ILUSTRAES

FIGURA 1 FIGURA 2 FIGURA 3 FIGURA 4 FIGURA 5 FIGURA 6 FIGURA 7 FIGURA 8 FIGURA 9 FIGURA 10 FIGURA 11 FIGURA 12 FIGURA 13 FIGURA 14 FIGURA 15 FIGURA 16 FIGURA 17 FIGURA 18 FIGURA 19 FIGURA 20 FIGURA 21 FIGURA 22 FIGURA 23 FIGURA 24 FIGURA 25 FIGURA 26 FIGURA 27 FIGURA 28 FIGURA 29 FIGURA 30 FIGURA 31 FIGURA 32 FIGURA 33 FIGURA 34 -

Aplicativos mais utilizados pelos usurios do Facebook. .....................23 Desenvolvedores mais utilizados pelos usurios. .................................24 Boto curtir apresentados em sites web. ...............................................26 Caixa de dialogo de recomendaes. ....................................................26 Caixa de dialogo de comentrios ..........................................................27 Boto login da plataforma Facebook ....................................................27 Popup de confirmao da permisso de acesso. ...................................29 Representao do grafo social. .............................................................29 Configurao de plugins sociais em aplicaes web. ...........................31 Arquitetura de integrao entre aplicaes web e o Facebook. ..........31 Propriedade de um objeto da plataforma Facebook............................32 Fluxo para obter chave de autenticao. .............................................37 Aplicao servidora concede acesso. ..................................................38 Aplicao cliente obtm o token de acesso. .......................................38 Diagrama do caso de uso Realizar publicaes no Facebook. ...........48 Diagrama do caso de uso Buscar feedback de publicaes. ...............49 Diagrama de atividade de publicao via servio web. ......................50 Diagrama de atividade de publicao via servio integrador. ............50 Diagrama de atividade do feedback da Fan Page. ..............................51 Diagrama de atividade do feedback de publicaes. ..........................51 Layout da diviso de camadas de projeto do servio integrador. .......53 Diagrama de classes da camada de domnio. ......................................55 Diagrama de classes da camada de negcios. .....................................56 Diagrama de classes da camada de persistncia. ................................58 Diagrama lgico de banco de dados. ..................................................59 Estrutura do servio web. ....................................................................62 Formulrio de criao da APP. ...........................................................66 Formulrio de informaes bsicas da APP. ......................................66 Tela de login do Facebook. .................................................................77 Permisso de acesso aos dados do usurio. ........................................78 Tela principal da Fan Page. .................................................................78 Tela de publicao de ofertas no Facebook. .......................................79 Publicao efetuada no Facebook pelo servio. .................................80 Tela de aes para a publicao. .........................................................81

QUADRO 1 QUADRO 2 QUADRO 3 QUADRO 4 QUADRO 5 QUADRO 6 QUADRO 7 QUADRO 8 QUADRO 9 QUADRO 10 QUADRO 11 QUADRO 12 QUADRO 13 QUADRO 14 QUADRO 15 QUADRO 16 QUADRO 17 QUADRO 18 QUADRO 19 QUADRO 20 QUADRO 21 QUADRO 22 QUADRO 23 QUADRO 24 QUADRO 25 QUADRO 26 QUADRO 27 QUADRO 28 QUADRO 29 QUADRO 30 QUADRO 31 QUADRO 32 QUADRO 33 QUADRO 34 QUADRO 35 -

Exemplos de requisies de informaes dos objetos do Facebook. .32 Lista de permisses de acesso da API Graph. ....................................34 Lista de permisses estendidas da API Graph. ...................................33 Requisito publicar mensagem no mural do usurio. ...........................42 Requisito compartilhar mensagem ......................................................43 Requisito publicar imagem no mural do usurio. ...............................43 Requisito compartilhar imagem. .........................................................43 Requisito publicar mensagem na fan page. ........................................44 Requisito publicar imagem na fan page. .............................................44 Requisito curtir publicao. ..............................................................44 Requisito comentar publicao. ........................................................45 Manter informaes do histrico de publicao de mensagens. .......45 Manter informaes do histrico de publicao de imagens ............45 Requisito validar token de acesso do usurio. ..................................46 Requisito buscar as 10 publicaes mais curtidas. ...........................46 Requisito buscar as 10 publicaes mais comentadas. .....................46 Requisito buscar os usurios que curtiram a publicao. .................47 Requisito buscar os usurios que comentaram a publicao. ...........47 Requisito buscar informaes da fan page. ......................................47 Requisito buscar status da publicao. .............................................47 Casos de uso vinculados aos seus requisitos. ...................................48 Caso de uso expandido realizar publicao no Facebook.................52 Caso de uso expandido buscar feedback de publicao. ..................52 SDKs do Facebook para aplicativos de terceiros..............................64 Cdigo fonte do mtodo GenerateLoginUrl. ....................................67 Cdigo fonte da tela de login com Facebook. ..................................68 Cdigo fonte do mtodo PostStatusMessageFanPage. .....................68 Cdigo fonte do mtodo PostStatusImageFanPage. .........................69 Cdigo fonte do mtodo InsertHistoryPost. .....................................70 Cdigo fonte do mtodo ActionLikePost. ........................................71 Cdigo fonte do mtodo ActionCommentPost. ................................72 Cdigo fonte do mtodo GetFeedbackLikePost. ..............................73 Estrutura do XML dos posts mais curtidos. ......................................74 Cdigo fonte do mtodo GetFeedbackCommentsPost. ....................74 Estrutura do XML dos usurios que comentaram o post. .................75

LISTA DE ABREVIATURAS E SIGLAS

API APP DLL EA HTTP ID iOS JSON MP3 PHP SDK SOAP SQL SSL UC UML UP URL WS XML

- ApplicationProgramming Interface - Application - Dynamic-link library - Enterprise Architect - HyperText Transfer Protocol - Identification - Apple's Operating System - JavaScript Object Notation - MPEG-1/2 Audio Layer 3 - PHP: Hypertext Preprocessor - Software Development Kit - Simple Object Access Protocol - Structured Query Language - Secure Socket Layer - Use Case - Unified Modeling Language - Process Unified - Uniform Ressource Locator - Web Service - Extensible Markup Language

RESUMO

O Facebook sendo uma das redes sociais mais acessadas no mundo virtual visto como um nicho no mercado publicitrio, sendo que sua plataforma possibilita o compartilhamento de informaes entre os seus usurios e as empresas. Muitas dos empresrios de grandes marcas tem se arriscado a usufruir desta opo de marketing digital. O trabalho proposto no visa marketing digital, mas pode ser usado para este fim, pois possibilita o compartilhamento de informaes de uma fan page com os usurios do Facebook. A ideia principal foi em criar um servio web que fosse capaz de compartilhar informaes na rede social Facebook e ter o controle destas informaes como os feedbacks de quem curtiu a publicao e de quem e quantas pessoas comentaram a postagem. Para obter os feedbacks foi criado um servio desktop, o qual fica responsvel em monitorar a plataforma do Facebook e buscar os usurios que curtiram e/ou comentaram determinada publicao. Essas informaes dos feedbacks so armazenadas em uma base de dados que ser acessada pelo servio web. O servio web ficar responsvel em disponibilizar esses dados para aplicaes de terceiros, onde aplicaes criadas em ASP.NET executadas na plataforma Windows ou aplicaes JAVA sendo executadas em Linux, podero compartilhar informaes com a rede social Facebook sem ter a necessidade de estar conectada na prpria pgina do Facebook, visto tambm que no precisaro conhecer a arquitetura da API Graph da plataforma do Facebook. Palavras-chave: Facebook, Integrao, API Graph, Servio web.

ABSTRACT

Facebook is one of the most accessed social networking in the virtual world is seen as a niche in the advertising market, with its platform enables information sharing among its users and companies. Many of the entrepreneurs of big brands have ventured to have this option of digital marketing. The proposed work is not intended to digital marketing, but can be used for this purpose, since it allows the sharing of information from a fan page on Facebook users. The main idea was to create a web service that would be able to share information on the social network Facebook and keep track of such information as the feedback of the publication and who likes who and how many people commented on the post. For the feedbacks created a desktop service, which is responsible for monitoring the Facebook platform and fetch the users who likes and / or commented given publication. These feedbacks of information are stored in a database that will be accessed by the web service. The web service will be responsible for providing this data to third party applications, where applications created in ASP.NET run under Windows or Java applications running on Linux, can share information with the social network Facebook without having the need to be connected to itself Facebook page, since it also will not need to know the architecture of the Graph API of Facebook's platform. Keywords: Facebook, Integration, Graph API, web service.

SUMRIO

1 INTRODUO ........................................................................................................12 1.1 Descrio do problema ............................................................................................14 1.2 Justificativa ..............................................................................................................14 1.3 Objetivo geral ..........................................................................................................16 1.4 Objetivos especficos ...............................................................................................16 1.5 Metodologia .............................................................................................................16 2 REDES SOCIAIS NA INTERNET.........................................................................18 2.1 Redes sociais............................................................................................................18 2.2 Mdias sociais ..........................................................................................................19 2.3 Principais redes e mdias sociais .............................................................................20
2.3.1 Blogger ............................................................................................................................ 20 2.3.2 Google+ ........................................................................................................................... 20 2.3.3 Linkedin ........................................................................................................................... 20 2.3.4 Twitter.............................................................................................................................. 21 2.3.5 YouTube ........................................................................................................................... 21 2.3.6 MySpace .......................................................................................................................... 21 2.3.7 Orkut ................................................................................................................................ 22

2.4 Facebook ..................................................................................................................22 2.5 Social design ............................................................................................................24 2.6 Social plugins ..........................................................................................................25
2.6.1 Boto curtir ..................................................................................................................... 25 2.6.2 Boto enviar .................................................................................................................... 26 2.6.3 Comentrios .................................................................................................................... 26 2.6.4 Boto login ...................................................................................................................... 27 2.6.5 Canais sociais .................................................................................................................. 28 2.6.6 Solicitaes de permisso de acesso ............................................................................... 28

2.7 Open graph ..............................................................................................................29


2.7.1 Open graph protocol ....................................................................................................... 30

2.8 API graph .................................................................................................................31


2.8.1 Autorizao...................................................................................................................... 33 2.8.2 OAuth ............................................................................................................................... 35 2.8.3 Token ............................................................................................................................... 36 2.8.4 Autenticao .................................................................................................................... 36

2.9 Concluso ................................................................................................................39 3 MODELAGEM DO SISTEMA...............................................................................40

3.1 UML ........................................................................................................................40


3.1.1 Processo Unificado UP ................................................................................................ 41

3.2 Viso geral do sistema .............................................................................................41 3.3 Levantamento de requisitos .....................................................................................42 3.4 Casos de uso ............................................................................................................48
3.4.1 Diagrama de caso de uso ................................................................................................ 48 3.4.2 Diagrama de atividades................................................................................................... 49

3.5 Expanso de Casos de Uso ......................................................................................52 3.6 Arquitetura em camadas ..........................................................................................52


3.6.1 Vantagens ........................................................................................................................ 53 3.6.2 Desvantagens ................................................................................................................... 53 3.6.3 Projeto da camada de interface ...................................................................................... 54 3.6.4 Projeto da camada de domnio........................................................................................ 54 3.6.5 Projeto da camada de negcio ........................................................................................ 55 3.6.6 Projeto da camada de persistncia ................................................................................. 56 3.6.7 Projeto lgico do banco de dados ................................................................................... 58

3.7 Concluso ................................................................................................................59 4 IMPLEMENTAO DO SISTEMA .....................................................................61 4.1 Tecnologias utilizadas .............................................................................................61
4.1.1 Web Service ..................................................................................................................... 61 4.1.2 XML ................................................................................................................................. 63 4.1.3 JSON ................................................................................................................................ 63 4.1.4 SDKs do Facebook .......................................................................................................... 64

4.2 Ferramentas utilizadas .............................................................................................64 4.3 Implementao do sistema ......................................................................................65


4.3.1 Criao de aplicaes no Facebook ............................................................................... 65 4.3.2 Integrao com o Facebook ............................................................................................ 66

4.4 Apresentao do sistema .........................................................................................76 4.5 Concluso ................................................................................................................81 5 CONSIDERAES FINAIS ...................................................................................82 REFERNCIAS BIBLIOGRFICAS ......................................................................84

12

1 INTRODUO

A comunicao existe desde a pr-histria, onde os primeiros seres humanos se comunicavam atravs de pinturas e gestos. A evoluo da comunicao humana no fica parada e est em constante movimento. O ser humano passou a usar utenslios para auxiliar no processo de envio e recebimento de mensagens, atravs das quais os homens transmitem e recebem ideias, impresses e imagens de toda ordem (PENTEADO, 1986). Todos querem de alguma forma compartilhar com outras pessoas os momentos mais importantes de suas vidas ou algum momento que no vai se repetir. Com a tecnologia fazendo parte da comunicao, atravs da internet as pessoas podem compartilhar qualquer tipo de informao em tempo real. Ao realizar uma compra de um produto de uma determinada marca, possvel comentar a qualidade deste produto adquirido, podendo ser uma crtica negativa ou um elogio. Com a febre das redes sociais, as pessoas acabam utilizando este espao para postar suas opinies sobre qualquer tipo de questo at mesmo sobre um produto. Quando feito um elogio ou uma crtica negativa de um determinado produto de uma marca para um amigo, este amigo poder levar adiante esta informao para outras pessoas amigas dele. Sendo que se esse mesmo comentrio for feito nas redes sociais a probabilidade desta informao se espalhar em grande escala muito maior e de uma forma muito mais rpida. As pessoas hoje tem a possibilidade de compartilhar informaes de produtos e/ou servios de uma determinada empresa em tempo real, assim elas passam a serem de forma indireta consultoras destes produtos ou servios.

13

O que seus consumidores pensam a respeito da sua marca, empresa ou produto deve ser sempre mais importante do que todo o seu plano de aes comunicacionais (TORRES, 2011).

Visando a comunicao com as redes sociais este trabalho tem o objetivo de construir um servio web que disponibilize em tempo real informaes contidas em aplicaes de diferentes plataformas com a rede social do Facebook. O servio Web integrador de dados ser utilizado como mdulo de um aplicativo que ser implantado em dispositivos mveis. No entanto este mesmo servio ficar disponvel para sistemas de outras plataformas, como web ou desktop. E este trabalho tem o objetivo de construir um software para ser usado como mdulo de um sistema, vale apena descrever resumidamente como funcionar o sistema como um todo. O sistema em geral ser constitudo por trs mdulos distintos: Uma aplicao em ambiente mvel, um portal de cadastros e consultas de informaes, e o mdulo de integrao de dados com a rede social do Facebook. A aplicao para os dispositivos mveis ficaria responsvel em receber as informaes como: localizao em tempo real do usurio do aplicativo, dados de fornecedores, instituies, estabelecimentos comerciais, produtos, entre outros. Esses dados serviram para alertar o usurio de possveis promoes de produtos de um determinado estabelecimento comercial, visto que este estabelecimento j esta cadastrado no sistema. O aplicativo mvel disponibilizar informaes que podem ser desde localizao do usurio at ofertas de determinados produtos, onde o usurio poder compartilhar estas informaes com os seus amigos atravs da rede social Facebook, para isso ser utilizado outro mdulo do sistema que o servio de integrao de dados com o Facebook. Este mdulo do sistema ter o objetivo de realizar o compartilhamento das informaes na rede social, tambm retornando possveis resultados (feedback) ao usurio ou fornecedor do produto. Esses feedbacks podero ser visualizados em um portal Web, com as informaes do nmero de pessoas que curtiram (like), bem como os comentrios realizados sobre determinada postagem.

14

O mdulo portal Web tambm ser utilizado para exibir informaes de produtos ou servios, nos quais estes sero apresentados aos possveis consumidores que possurem no aplicativo mvel. O portal Web tambm poder fornecer relatrios com os dados compartilhados na rede social juntamente com os seus feedbacks para que fornecedores/clientes fiquem informados no que diz a respeito da publicidade de seu produto ou servio na rede social. Este trabalho est estruturado da seguinte forma: no captulo 1 apresentado o projeto do trabalho. No captulo 2 descrito os conceitos de redes sociais, estudo realizado sobre API do Facebook e suas funcionalidades. O captulo 3 so apresentados o levantamento de requisitos e a modelagem do sistema. No captulo 4 descrita a implementao do servio Web. No captulo 5 so apresentadas as etapas de testes que sero realizados no software. No captulo 6 so mostradas as consideraes finais deste trabalho.

1.1 Descrio do problema As redes sociais esto cada vez mais presentes no dia a dia das pessoas. Algumas dessas pessoas acessam as redes sociais apenas por diverso, outras por interesse em relacionamento ou at mesmo com intuito profissional. Sendo que todos os usurios adeptos desta tecnologia tem um objetivo em comum, o compartilhamento de informaes. Com o grande nmero de pessoas conectadas internet, hoje existem vrias aplicaes de diferentes plataformas e de diferentes tipos de linguagens de programao que esto integradas com a rede social do Facebook e muitas destas aplicaes no conhecem a plataforma desta rede social para poder se interligar com os usurios do Facebook.

1.2 Justificativa Com a possibilidade de estar compartilhando informaes com outras

15

pessoas de qualquer lugar e em tempo real atravs da rede social do Facebook, faz com que aplicaes integradas a esta rede social venham a ter a possibilidade de divulgar seus contedos em grande escala para mais de 900 milhes de usurios do Facebook (SOCIALBAKER, 2012). Supondo que uma aplicao em ambiente mvel tenha o objetivo de exibir os postos de combustveis mais prximos de uma pessoa e com os preos de cada tipo de combustvel, logo possvel compartilhar com os usurios do Facebook, qual posto tem o menor preo e a sua localizao. Assim ser possvel fazer com que muitos dos usurios do Facebook que receberam esta informao, venham a abastecer no posto de combustvel que foi indicado na rede social. Quando uma pessoa est prestes a realizar uma compra em uma determinada loja, ela busca saber se esta loja tem produtos de qualidade e com bons preos. Muitas dessas informaes geralmente esto disponveis em folders de propagandas, outdoor e sites na internet do prprio estabelecimento. Mas se o que levou esse consumidor a comprar naquela loja foi indicao de um amigo atravs de um comentrio feito no Facebook, porque a indicao de uma pessoa prxima vem a ter mais valor que o prprio anncio do produto oferecido pelo estabelecimento.
A propaganda boca a boca representada pelos comentrios informais que vo passando de pessoa para pessoa. Por ser uma fonte no comercial de divulgao, revestida de extraordinria fora, pois representa um testemunho, uma opinio valiosa sobre um produto ou servio, de algum que o testou ou ouviu falar sobre ele. E este testemunho, principalmente quando transmitido por algum de confiana, carrega toda a credibilidade de quem o propaga. As pessoas passam a "vender" conceitos sobre produtos e servios a outras que nem imaginamos (CASTRO, 2011).

Quando comprado um produto em um determinado estabelecimento, a pessoa que realizou esta compra poder antes mesmo de utilizar o produto, comentar o atendimento da loja que efetuou a compra, podendo criticar ou elogiar o produto e/ou estabelecimento com os usurios da rede social do Facebook. Da mesma forma aplicaes integradas plataforma do Facebook tem a possibilidade de saber o que os usurios esto falando sobre determinado assunto postado, por exemplo, saber quais foram os usurios que curtiram ou comentaram uma

16

marca e/ou produto.

1.3 Objetivo geral Criar um servio web que realize a integrao de dados entre aplicaes de diferentes tipos de plataformas com a rede social do Facebook.

1.4 Objetivos especficos a) Identificar caractersticas da API da rede social do Facebook. b) Criar um WebService para integrao de dados com a plataforma do Facebook, permitindo compartilhar informaes na rede social. c) Criar um servio desktop que fique monitorando as publicaes que foram realizadas para obter os feedbacks. d) Possibilitar que aplicaes de terceiros possam consumir o WebService.

1.5 Metodologia Primeiramente foi apresentado um estudo sobre a API (Application Programming Interface) da rede social do Facebook. O objetivo deste estudo obter o conhecimento da ferramenta de desenvolvimento disponibilizada pelo Facebook. A prxima etapa foi realizado o estudo de casos de uso, levantamento de requisitos e criar a modelagem do sistema utilizando a linguagem da UML. Em seguida foi implementado um WebService de integrao de dados com o Facebook. Para a implementao deste software foi utilizada a ferramenta Microsoft Visual Studio 2010, com a linguagem C#, e o Banco de Dados o Microsoft SQL Server 2008 Express. Posteriormente, este sistema foi disponibilizado para os testes necessrios,

17

verificando as funcionalidades implementadas para que se possam identificar possveis erros que devero ser corrigidos. Os testes sero realizados atravs da criao de uma aplicao simples, para apenas consumir o WebService e utilizar de todas as funcionalidades do servio integrador.

18

2 REDES SOCIAIS NA INTERNET

Neste captulo sero apresentados conceitos sobre redes sociais e mdias sociais e as suas funcionalidades na internet. Logo ser descrito o funcionamento da rede social Facebook.

2.1 Redes sociais Uma rede social caracterizada por um conjunto de dois ou mais elementos e suas conexes (interaes ou laos sociais). Esses elementos podem ser descritos como pessoas, instituies ou grupos (RECUERO, 2010).
As Redes Sociais so responsvel pelo compartilhamento de ideias entre pessoas que possuem interesses e objetivo em comum e tambm valores a serem compartilhados. Assim, um grupo de discusso composto por indivduos que possuem identidades semelhantes (HENRIK, 2012).

As redes sociais so espaos onde as pessoas se relacionam diretamente com outras pessoas, formando grupo ou no, nos quais juntos formam uma rede de relacionamento (ALTERMANN, 2010). Redes sociais so relaes entre indivduos que compartilham valores, objetivos e ideias com interesses mtuos (WIKIPDIA, 2012). Segundo Telles (2010) as redes sociais virtuais so sites de relacionamento com o objetivo de reunir pessoas, que so chamados de membros quando escritos nestes sites como: Facebook, Orkut, MySpace entre outros. So espaos utilizados para expor os perfis dos usurios e seus dados pessoais como fotos, textos, mensagem e vdeos, alm da opo de interao entre os usurios, podendo criar listas de amigos

19

e comunidades.

2.2 Mdias sociais Conforme TELLES (2010), as mdias sociais so sites construdos na internet com o objetivo de exibir contedos colaborativos, criar interao social e compartilhamento de informaes em diversos formatos. Os sites Twitter, YouTube, SlideShare, Digg, Flickr, entre outros podem ser considerados como mdia social.
As mdias sociais so parte da sociedade moderna. Muitas redes sociais na internet tm uma populao que as colocariam em segundo ou terceiro lugar no ranking de populao dos pases (RAMALHO, 2010).

As mdias sociais so espaos onde os indivduos apenas postam comentrios, informaes sem gerar relacionamento direto com outros indivduos (ALTERMANN, 2010).
As mdias sociais fazem parte de uma revoluo poderosa, influenciam decises, perpetuam ou destroem marcas e elegem presidentes (TELLES, 2010).

De acordo com as definies de Recuero (2010), um dos fatos marcantes acontecido nas redes sociais foi a campanha presidencial dos Estados Unidos entre os candidatos Barack Obama e John McCain no ano de 2008. As redes sociais se tornaram verdadeiras fontes de pesquisas sobre os ndices de popularidade de cada candidato. Um exemplo clssico foi com a utilizao do Twitter, onde os usurios postavam comentrios a respeito de cada candidato. O YouTube tambm foi utilizado como uma ferramenta de campanha do candidato Barack Obama, onde diversas pessoas visualizaram o vdeo Yes wecan criado por William do Black EyedPeas. Nas mdias sociais as pessoas se comunicam, mais no entre si, pois no geram relacionamento. Apenas postam informaes (FELIX, 2012). Conforme destaca Felix (2012), na internet no existe rede social sem a mdia social, por que a rede social precisa estar inserida em algum meio. J ao

20

contrrio possvel sim, as pessoas podem apenas realizar postagem de algo sem que haja inter-relao entre elas, assim no formando uma rede social.

2.3 Principais redes e mdias sociais No mundo virtual existem vrios sites de relacionamentos, onde cada um tem sua particularidade. Muitos desses sites tentam encontrar formas para unir as pessoas de forma rpida e eficaz e com assuntos em comuns entre elas. Abaixo esto alguns dos principais sites para este ramo que cresce a cada dia no mundo virtual. 2.3.1 Blogger Segundo Blogger, um blog considerado um dirio pessoal digital, um espao onde os usurios podem publicar qualquer tipo de informaes. Os usurios de um blog no precisam de conhecimentos tcnicos de criao sites para poder manipular o blog. Neles possvel tambm fazer publicidades de produtos ou marcas (BLOGGER, 2012). 2.3.2 Google+ Conforme o prprio Google, o Google+ um site de relacionamento, ou seja, uma rede social virtual, que foi criado no intuito de conectar as pessoas na internet parecida com a conexo do mundo real. O Google+ como outros sites de relacionamentos permite os usurios desta rede compartilhar ideias, links e fotos. Permite utilizar chat de vdeo de forma fcil, onde o usurio pode conversar com at nove pessoas de cada vez. O Google+ tem como caracterstica a separao de grupos que so chamados de crculos, assim possvel postar informaes especficas para as pessoas de um determinado crculo, porm no impeditivo de realizar postagem para diferentes pessoas de outros crculos conforme descreve as regras do Google (GOOGLE, 2012). 2.3.3 Linkedin

21

Conforme definido pela documentao da pgina do Linkedin, foi lanado em maio de 2003, um site de criao de redes sociais voltadas aos negcios. Conforme Andr Telles, o Linkedin diferente dos sites de relacionamento pessoal, como Orkut, Facebook que so voltados ao pblico em geral. O foco desse site construir uma rede de contatos profissionais que possa ser utilizada nos negcios (LINKEDIN, 2012). O Linkedin uma espcie de currculo profissional, em que exibe o perfil profissional do usurio, no qual este pode ser usado como critrio de uma possvel contratao de trabalho (TELLES, 2010). 2.3.4 Twitter A documentao da pgina do Twitter define que foi fundado em 2006 com o servio disponvel em mais de 20 idiomas, um micro blog que funciona a partir do envio de mensagens curtas com um limite de 140 caracteres que so chamadas de Tweet, na qual essas mensagens so visualizadas por seguidores do usurio que postou a mensagem. O Twitter conecta as empresas com seus clientes em tempo real. As empresas podem estar utilizando os servios do Twitter para compartilhar informaes de seus produtos ou servios aos possveis consumidores (TWITTER, 2012). 2.3.5 YouTube Fundado em fevereiro de 2005 como especificado na documentao da prpria pgina, o YouTube permite que milhes de pessoas descubram, assistam e compartilhem vdeos. Tambm oferece um frum onde s pessoas possam se conectar para compartilhar informaes e inspirar outras pessoas a compartilhar cada vez mais vdeos. Os vdeos postados so separados por categorias (YOUTUBE, 2012). 2.3.6 MySpace Conforme Andr Telles, o MySpace foi o primeiro site de rede social a permitir que os usurios pudessem personalizar seus perfis. Considerado um dos

22

maiores sites de relacionamento, alm dos usurios poderem postar mensagens, fotos, opinies, ideias, tambm tem a possibilidade de hospedar arquivos de MP3s, onde possvel que um msico publique suas msicas e outros usurios visualizem seu perfil para ouvir essas msicas, com isso esta rede social se tornou popular entre as bandas musicais, no qual utilizam este espao para postar informaes referente a prpria banda como se fosse seu prprio site oficial (TELLES, 2010). 2.3.7 Orkut Conforme documentao descrita em sua prpria pgina, o Orkut foi a primeira grande rede social a se desenvolver no Brasil, este site de relacionamento de propriedade da empresa Google, onde os usurios podem estar compartilhando informaes, mensagens, ideias, fotos e vdeos. Um dos objetivos do Orkut fazer com que seus membros conheam pessoas e mantenham relacionamento. O Orkut permite que os usurios encontrem facilmente pessoas que compartilhem informaes (ORKUT, 2012).

2.4 Facebook Fundada em fevereiro de 2004, a rede social Facebook possui mais de 800 milhes de usurios ativos. Criado por Mark Zuckerberg, Dustin Moskovitz, Chris Hughes e o brasileiro Eduardo Severin, ex-alunos da universidade de Havard (FACEBOOK, 2012). De acordo com Socialbakers (2012), o Facebook uma das redes sociais que mais cresce no mundo em nmeros de usurios. O Brasil o terceiro pas com o maior nmero de usurios ativos, atualmente possui mais de 44 milhes de usurios conectados a esta rede social. Fica atrs apenas da ndia que totaliza mais de 45 milhes de usurios conectados e dos Estados Unidos que lidera com mais de 156 milhes de usurios adeptos a rede social Facebook. Segundo Ramalho (2010), com a possibilidade da integrao com a rede social do Facebook atravs de sua API, muitas empresas tm utilizado isso como uma

23

ferramenta de publicidade para expor seus produtos ou servios aos mais de 900 milhes de usurios da rede social. Quando uma empresa cria uma mensagem de uma campanha de publicidade de um determinado produto ou servio, esta empresa tem a responsabilidade de pensar em todos os detalhes da campanha, o planejamento, as regras que vo da gramtica a cdigos de tica, uma boa aparncia para que com isso a campanha venha ser bem sucedida. J os usurios das redes sociais dispem da total liberdade de divulgar suas opinies. nisso que as empresas esto de olho e investindo cada vez mais neste mercado de publicidade. Quando se tem a inteno de criar aplicativos para interagir com os usurios, necessrio seguir algumas recomendaes, a prpria documentao da rede social disponibiliza vrias orientaes de como expor um produto social, utilizando os recursos atrelados a esta rede (FACEBOOK, 2012). Conforme definies de Socialbakers (2012), com o aumento crescente das interaes entre as empresas e usurios do das redes sociais, o Facebook j possui mais de 28 mil aplicativos criados para sua plataforma. Dentre as categorias podemos citar: business, educao, entretenimento, utilitrios, jogos entre outras. A figura 1 apresenta uma estatstica dos principais aplicativos mais utilizados pelos usurios da plataforma do Facebook (SOCIALBAKERS, 2012).
Aplicao Facebook for BlackBerry smartphones CityVille statistics Texas HoldEm Poker statistics MyCalendar statistics Bing Scribd Dailymotion FarmVille CastleVille Hidden Chronicles Windows Live Messenger Angry Birds Bubble Witch Saga Spotify TripAdvisor Spotify TripAdvisor, LLC Windows Live Messenger Zynga Criadores/Desenvolvedor Research In Motion, Ltd. Zynga Zynga MyCalendar Microsoft Usurios Ativos Mensalmente 54.200.000 40.900.000 36.700.000 31.000.000 30.000.000 29.500.000 27.300.000 24.700.000 24.400.000 24.300.000 24.200.000 24.100.000 21.100.000 19.300.000 19.200.000

FIGURA 1 - Aplicativos mais utilizados pelos usurios do Facebook. FONTE: (SOCIALBAKERS, 2012)

24

Os aplicativos disponveis na plataforma do Facebook so criados para melhorar as interaes entre os usurios da rede, atravs de jogos ou recurso teis tais como: eventos, fotos, calendrio, entre outros aplicativos disponveis (FACEBOOK, 2012). Alguns desses aplicativos so criados pelos desenvolvedores do Facebook, mas a grande parte deles criada por desenvolvedores externos que utilizam a API, assim podendo integrar suas aplicaes na rede social, como por exemplo, aplicaes mveis ou web (FACEBOOK, 2012). A figura 2 apresenta os principais desenvolvedores de aplicativos que so utilizados pelos os usurios da plataforma Facebook (SOCIALBAKER, 2012).

Desenvolvedores de Aplicativos Usurios Ativos Mensalmente

1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.

Zynga Research In Motion, Ltd. wooga - world of gaming Microsoft MyCalendar Electronic Arts Windows Live Messenger Telaxo Unknown Spotify TripAdvisor, LLC wooga Zynga With Friends Samsung Electronics Rotten Tomatoes

127.131.520 54.200.000 45.258.000 31.700.009 31.000.200 28.412.440 24.200.000 22.677.000 21.627.627 19.300.000 19.200.000 18.900.000 18.900.000 18.200.010 16.700.000

FIGURA 2 - Desenvolvedores mais utilizados pelos usurios. FONTE: (SOCIALBAKER, 2012).

2.5 Social design O social design a definio de como sero expostas as informaes no lao social, padres que devem ser seguidos para melhorar as experincias sociais

25

(FACEBOOK, 2012). De acordo com relatos do Facebook (2012), dividido em trs principais elementos o social design consiste em comunidade, conversa e identidade. A comunidade refere-se aos usurios que ajudam a tomada de decises, as conversas so as interaes que os usurios tm com outros usurios e comunidades, e a identidade refere-se identificao do usurio, onde este visto em pelas comunidades do Facebook.

2.6 Social plugins Conforme documentao da pgina do Facebook (2012), esta rede social visa integrao da sua plataforma com diversos tipos de pginas de internet, disponibilizando plugins sociais que permitem que os internautas de qualquer site compartilhem informaes sem a necessidade de estar logado na rede social. Essa sesso apresentar uma lista dos principais plugins da rede social do Facebook. 2.6.1 Boto curtir uma ferramenta que pode ser adicionada em pginas da web criando um diferencial para o site, j que permite que os usurios compartilhem o contedo publicado (FACEBOOK, 2012). Quando o usurio clicar no boto curtir e estando logado no Facebook, realizada uma conexo com plataforma da rede social, onde esta pgina ser apresentada nos Gostos e Interesses do perfil do usurio (FACEBOOK, 2012). Com esse plugin social permite o proprietrio da pgina atraia usurios, para curtir a sua prpria pgina sem a necessidade de navegar at a pgina do Facebook. (FACEBOOK, 2012). O plugin permite que os usurios visualizem tambm quantos amigos j curtiram a pgina (FACEBOOK, 2012). A figura 3 apresenta uma imagem de um exemplo de uma pgina web que adotou o plugin social curtir.

26

FIGURA 3 - Boto curtir apresentados em sites web. FONTE: (FACEBOOK, 2012).

2.6.2 Boto enviar Conforme especificado na documentao da pgina do Facebook (2012), este plugin social para ser implementado necessita-se do uso do SDK JavaScript. uma das ferramentas mais utilizadas nas pginas da web, que permite aos usurios enviar comentrios de contedos publicados aos amigos do Facebook, dando a opo de publicar a todos os amigos ou apenas aos privados (FACEBOOK, 2012). A figura 4 apresenta um exemplo da caixa de dilogo de recomendaes do Facebook em aplicaes web, onde usurios do site podero compartilhar informaes na rede social sem a necessidade de sair da pgina (FACEBOOK, 2012).

FIGURA 4 - Caixa de dialogo de recomendaes. (FONTE: FACEBOOK, 2012).

2.6.3 Comentrios Conforme documentao do Facebook, o plugin comentrios permite que o

27

usurio realize comentrios sobre os sites no qual este plugin est acoplado. Os comentrios so exibidos de forma ordenados dos mais relevantes dos amigos, amigos dos amigos e tpicos que mais votaes positivas receberam. Comentrios considerados com Spam no so exibidos ao pblico. Quando um usurio do Facebook comenta um site, logo este comentrio publicado na pgina da rede social, mantendo os histricos de comentrios. Com isso possibilita que a discusso seja continuada na prpria pagina do Facebook, sem a necessidade de acessar o site onde o comentrio foi realizado (FACEBOOK, 2012). A figura 5 apresenta a de dilogo de comentrios do Facebook em aplicaes web, onde usurios do site podero compartilhar informaes na rede social sem a necessidade de sair da pgina (FACEBOOK, 2012).

FIGURA 5 - Caixa de dialogo de comentrios FONTE: (FACEBOOK, 2012).

2.6.4 Boto login Conforme descrito na documentao da pgina da rede social, o Boto Login um plugin no qual tem a funo de logar ao perfil do usurio do Facebook atravs de sites fora da plataforma. Permite que o usurio visualize quais amigos que j esto cadastrados no site. Como outros plugins sociais. Quando o usurio j est logado no Facebook, ento no ser exibido o Boto Login no site que ele visitou (FACEBOOK, 2012). A figura 6 representa o boto de login a pgina do Facebook atravs de outras aplicaes web.

FIGURA 6 - Boto login da plataforma Facebook (FONTE: FACEBOOK, 2012).

28

2.6.5 Canais sociais Conforme descreve documentao do Facebook, os canais sociais so ferramentas que tem grande potencialidade de compartilhar informaes atravs de aplicativos ou de sites com os usurios do Facebook e os seus amigos. A opinio de amigos na escolha da compra de produto muito importante, com isso a plataforma do Facebok pode ajudar marcas de produtos a crescerem em sua divulgao (FACEBOOK, 2012). 2.6.6 Solicitaes de permisso de acesso Conforme especifica documentao do Facebook, quando criado aplicaes que se integram a plataforma do Facebook, necessrio que essas aplicaes solicitem permisses para enviar e capturar informaes dos usurios do Facebook. Existem dois tipos de solicitaes que podem ser enviados a partir de aplicativos (FACEBOOK, 2012). 1. Solicitaes de usurios: Os pedidos so enviados por solicitaes explcitas do usurio atravs de uma caixa de dilogo utilizando algum tipo de plugin social disponvel na plataforma do Facebook; 2. Solicitaes de aplicaes: Os pedidos so enviados apenas pelos usurios que utilizam a aplicao que requer as permisses de envios. Dessa forma possvel apenas utilizando a API Graph, onde permite enviar informaes em nome de um usurio para a plataforma do Facebook. A seguir a Figura 7 representa a tela de confirmao da permisso de acesso conta de um usurio do Facebook.

29

FIGURA 7 - Popup de confirmao da permisso de acesso. (FONTE: FACEBOOK, 2012).

2.7 Open graph O Facebook baseado no grafo social, onde este representa os usurios e suas conexes. Na plataforma do Facebook existem ferramentas que permitem a interao entre aplicativos de terceiros, com o grafo social. Com o open graph os aplicativos tm permisses de executar aes na rede social, como ler dados de um usurio ou at mesmo postar informaes em nome do usurio, onde as informaes publicas so exibidas na linha do tempo do perfil do usurio (FACEBOOK, 2012). A seguir a Figura 8 representa o grafos entre os objetos da plataforma da rede social Facebook, ou seja, os usurios da rede social esto interligados entre si (FACEBOOK, 2012).

FIGURA 8 - Representao do grafo social. (FONTE: FACEBOOK, 2012).

30

Segundo Grewe (2009), o open graph foi criado para permitir aos desenvolvedores criarem aplicativos que pudessem ser integrados na plataforma do Facebook. Segundo Grewe (2009), aplicativos criados para sobre API do Facebook, apenas sero executados na plataforma do Facebook, j os aplicativos criados na plataforma OpenSocial podem ser implantados em mltiplas redes sociais. 2.7.1 Open graph protocol A documentao do Facebook (2012) especifica que, o protocolo open graph permite que pginas da web se integrem ao Facebook, utilizando recursos da prpria rede social, como o boto curtir. Isto significa que quando o usurio clicar neste boto ser realizado uma conexo entre o site e a plataforma da rede social. Segundo o Facebook, Open Graph Protocol uma tecnologia nica que fornece informaes suficientes para qualquer pgina web no grafo social. O protocolo aberto em grafos permite que desenvolvedores tenham a facilidade em integrar as pginas web com a rede social (FACEBOOK, 2012). As pginas web que desejam se transformar em objetos no grafo social, faz se necessrio que sejam adicionados metadados, ou seja, tags <meta> no cabealho <head> da pgina. A plataforma do Facebook disponibiliza quatro propriedades que so requeridas para que a pagina Web possa se integrar com a rede social (FACEBOOK, 2012): 1. og:title: O ttulo do objeto que ser apresentado no grafo social; 2. og:type: O tipo do objeto, como por exemplo vdeo. Dependendo do tipo outras propriedades sero necessrias; 3. og:image: Imagem que deve representar o objeto dentro do grafo; 4. og:url: Url que identificar o objeto no grafo. Para que seja possvel integrar uma pgina web na plataforma do Facebook necessrio que a pgina esteja associada a uma conta do Facebook ou a um aplicativo da plataforma da rede social (FACEBOOK, 2012). A figura 9 representa a configurao necessria para integrar plugins sociais

31

do da plataforma dp Facebook com aplicaes web.

FIGURA 9 - Configurao de plugins sociais em aplicaes web. (FONTE: FACEBOOK, 2012)

2.8 API graph O Facebook disponibilizou em 2007, APIs (Application Programming Interface) no qual possvel que aplicativos de terceiros realizem interaes com os usurios da rede social (KIRKPATRICK, 2007). A figura 10 representa a arquitetura da integrao de uma aplicao web com a com a plataforma do Facebook.

FIGURA 10 - Arquitetura de integrao entre aplicaes web e o Facebook. FONTE: (LEARN PHP ONLINE, 2011).

A API Graph consiste no grafo social Facebook, onde representa os objetos neste grafo, como por exemplo (pessoas, fotos, eventos e pginas) e as conexes entre esse objetos, como (relaes de amigos, contedo compartilhado e tags de fotos) (FACEBOOK, 2012) Cada objeto no grafo social identificado por ID nico. As solicitaes das propriedades desses objetos podem ser feitas atravs de requisies usando a

32

seguinte URL https://graph.facebook.com/ID, onde o ID a identificao do objeto. A pgina oficial do Facebook identificada no grafo pelo ID 19292868552, no que possvel retornar este objeto com a seguinte requisio

https://graph.facebook.com/19292868552 (FACEBOOK, 2012) A figura 11 apresenta o retorno das propriedades de um objeto do grafo social, onde o tipo do formato do arquivo JSON.

FIGURA 11 - Propriedade de um objeto da plataforma Facebook. (FONTE: FACEBOOK, 2012)

Segundo a documentao do Facebook (2012), a API Graph permite tambm que os objetos sejam acessados pelo nome que tambm como o ID, onde se mantem o padro da requisio https://graph.facebook.com/NOME.Todos os objetos no Facebook podem ser acessados da mesma forma, como segue alguns exemplos abaixo (FACEBOOK, 2012). No quadro 1 so apresentados alguns modelos de exemplos de pedido de requisio das informaes de alguns objetos (FACEBOOK, 2012).
QUADRO 1 Tipo requisio Usurios Pginas lbuns de fotos

Exemplos de requisies de informaes dos objetos do Facebook.


Retorno Propriedade do usurio Bret Taylor Pgina da Coca-Cola no Facebook Fotos do mural da pgina da Coca-Cola.

URL https://graph.facebook.com/btaylor https://graph.facebook.com/cocacola https://graph.facebook.com/99394368305

(FONTE: FACEBOOK, 2012)

A API do Facebook permite que atravs de uma requisio seja possvel retornar a lista de todas as pessoas que esto conectadas no Facebook. Todas as respostas das solicitaes realizadas esto no formato JSON (FACEBOOK, 2012).

33

2.8.1 Autorizao Conforme descreve a documentao do Facebook, para adquirir informaes privadas de usurios do grafo social, necessrio primeiramente adquirir permisso. Quando solicitado permisso para acesso das informaes privadas obtido um token de acesso para o usurio do Facebook. Aps obter o token de acesso possvel realizar solicitaes em nome do usurio passando o token de acesso nas requisies (FACEBOOK, 2012). Por exemplo, a requisio https://graph.facebook.com/btaylor?access_token= user_access_token, solicitada atravs da API Graph retornar um objeto JSON alm das informaes pblicas, outras informaes adicionas do usurio (Bret Taylor) dependendo da permisso de acesso solicitada . Para que seja possvel retornar informaes especficas, como o endereo de e-mail de usurio necessrio solicitar permisses estendidas para ter acesso a essas informaes privadas. No quadro 2 esto listados os tipos de permisso estendidas, na qual aplicaes de terceiros podero solicitar aos usurio do Facebook, onde esta aplicaes tero alguns privilgios sobre a conta do usurio alm da permisso bsica (FACEBOOK, 2012).
QUADRO 2 Permisso de Usurio read_friendlists read_insights read_requests read_stream ads_management manage_friendlists manage_notifications publish_checkins publish_stream publish_actions

Lista de permisses estendidas da API Graph.

Descrio Fornece acesso a lista de amigos do usurio. Todos os amigos do usurio so fornecidos como parte dos dados, essa permisso concede acesso s listas de amigos de um usurio. Fornece acesso de leitura aos dados Insights para as pginas. Fornece acesso de leitura aos pedidos enviados Fornece acesso a todos os posts de um usurio e permite que seu aplicativo realize pesquisas sobre notcias postadas pelo usurio Fornece a capacidade de gerenciar anncios e realizar publicaes de anncios com a API do Facebook em nome de um usurio. Permite que aplicativos criem e editem as listas dos amigos de um usurio. Permite que um app leia as notificaes do usrio e possibilita que elas sejam marcadas como lidas. Permite que um aplicativo execute checkins em nome do usurio. Permite aplicaes postar contedos, comentrios, e "curtir" contedos postados por um usurio e as publicaes dos amigos desse usurio. Geralmente esta permisso solicitada por aplicativos de terceiros que esto integrados a rede social do Facebook Permite que aplicativos publiquem notas de um usurio.

(FONTE: FACEBOOK, 2012)

34

No quadro 3 esto listados os tipos de permisso de acesso que uma aplicao de terceiro pode solicitar a um usurio da plataforma Facebook para obter dados privados (FACEBOOK, 2012).
QUADRO 3 Permisso de Usurio user_about_me user_activities user_birthday user_checkins user_education_history user_events user_groups user_hometown user_interests user_likes user_location user_notes user_photos user_relationship_details user_religion_politics user_status user_videos user_website user_work_history Email

Lista de permisses de acesso da API Graph.


Descrio Fornece acesso ao "Quem sou eu" sobre o perfil usurio Fornece acesso a lista de atividades ativas do usurio. Fornece acesso as do aniversrio do usurio propriedadedes

Permisso de Amigos friends_about_me friends_activities friends_birthday friends_checkins friends_education_history friends_events friends_groups friends_hometown friends_interests friends_likes friends_location friends_notes friends_photos friends_relationship_details friends_religion_politics friends_status friends_videos friends_website friends_work_history N/A

Fornece acesso de leitura ao usurio autorizado check-ins ou de um amigo checkins que o usurio pode ver. Fornece acesso a histria da educao do usurio, por exemplo onde estudou Fornece acesso lista de eventos que o usurio est participando como a conexo de eventos Fornece acesso lista de grupos que o usurio membro Fornece acesso a cidade natal do usurio Fornece acesso a lista de interesses do usurio Fornece acesso lista de todas as pginas que o usurio tenha gostado (Curtir) Fornece acesso a localizao atual do usurio Fornece acesso s notaes do usurio Fornece acesso s fotos que o usurio publicou, e as fotos que o usurio foi marcado Fornece acesso s preferncias do usurio em relacionamento Fornece acesso a opo religiosas e polticas do usurio Fornece acesso a mensagem mais recente que o usurio publicou em seu status Fornece acesso aos vdeos que o usurio publicou, e vdeos que o usurio foi marcado Fornece acesso a URL do web site do usurio Fornece acesso ao histrico de trabalho do usurio Fornece acesso ao endereo de e-mail do usurio.

(FONTE: FACEBOOK, 2012)

35

2.8.2 OAuth Segundo Hueniverse (2012), a criao do protocolo OAuth teve incio em novembro de 2006, onde Blaine Cook estava trabalhando na implementao do TwitterOpenID. Ele queria de alguma forma usar o OpenID juntamente com a API do Twitter, por isso entrou em contato Chris Messina e outros como David Recordon e Larry Halff, onde concluram que no existia um padro aberto de autenticao de acesso a API. comparado a um chave valete (valetkey), onde liberado uma chave (senha) de acesso a dados em nome do usurio proprietrio, ou seja, no casos de APIs permitir realizar aes em nome no usurio mas no possuir permisso para acessos especficos do usurio, como dados privados (TOOLS, 2011). O OAuth vem com o objetivo de padronizar a forma de como os desenvolvedores oferecem seus servios via uma API sem que os dados dos usurios sejam expostos como suas senhas e outras credencias (HUENIVERSE, 2010). O OAuth um protocolo de autorizao padro aberto que permite que os administradores acessem dados bsicos dos usurios sem acessar as contas dos usurios. Em vez de solicitar nomes de usurios e senhas aos usurios, o OAuth age como a "chave mestra" usando um token de usurio para permitir um acesso limitado aos dados. Os usurios podem revogar a chave mestra, caso necessrio (TOOLS, 2011). Segundo Hueniverse (2010), com o protocolo OAuth possvel compartilhar recursos privados como (fotos, vdeos, lista de contatos) sem ter que disponibilizar o usurio e senha. A combinao do usurio e da senha se transforma em um token, no qual esse d acesso conta do usurio em uma rede social por exemplo. Hueniverse (2010), afirma que o token expira h praticamente duas horas aps ele ser retornado a aplicao que solicitou as credenciais de um usurio, mas pode ser configurado para nunca expirar, se o usurio permitir.

36

De fato, OAuth por si s prov nenhuma privacidade e depende de outros protocolos para cumprir isso (como SSL). Tendo disto isso, OAuth pode ser implementado de uma maneira muito segura e a especificao inclui um bom montante de consideraes de segurana para incluir contas quando trabalha com recursos sensveis. Somente com o uso de senhas junto de nomes de usurios para ganhara cesso, sites usaro tokens juntos com segredos para acessar recursos. E somente como senhas, segredos devem ser protegidos.(TOOLS, 2011).

2.8.3 Token Segundo Lahav (2011), um token de acesso uma string representado uma autorizao concedida a um cliente. A sequncia de caracteres geralmente opaco para o cliente. Os tokens representam escopos especficos e tem uma durao de acesso concedida pelo proprietrio do recurso. O token de acesso fornece uma chamada abstrata substituindo diferentes construes de autorizao (como por exemplo, nome de usurio e senha) como um nico smbolo compreendido pelo servidor de recursos. O Facebook afirma, que quando obtido o token de acesso do Facebook, solicitaes tero um perodo de acesso definido pelo Facebook. Aps este perodo ter expirado o token no mais valido assim obrigando o usurio autenticar novamente. A durao do perodo de acesso de um token depende de como ele foi gerado (FACEBOOK, 2012). 2.8.4 Autenticao A autenticao permite que aplicativos tenham a capacidade de conhecer a identidade de um usurio do Facebook, onde possibilita ler e gravar dados atravs das APIs do Facebook. A Plataforma do Facebook utiliza o protocolo OAuth 2.0 para autenticao e autorizao (FACEBOOK, 2012). A autenticao por meio do protocolo OAuth funciona basicamente em trs passos (MAFRA, 2010). 1. Aplicao cliente obtm a chave de autenticao. Neste passo iniciado o processo de autenticao, por exemplo, em uma aplicao web o usurio clicaria no boto LoginFacebook.

37

Neste momento a aplicao cliente solicitada a aplicao servidora uma chave de autenticao. A aplicao servidora retorna duas chaves, uma publica e outra privada, porm essas chaves no do permisso de acesso apenas so usadas durante o processo de autenticao.

2. Usurio autoriza aplicao cliente na aplicao servidora. Neste passo o usurio redirecionado para a aplicao servidora, o usurio autoriza o acesso a aplicao cliente. Aps o usurio autorizar a aplicao cliente, ento ele redirecionado novamente para a aplicao cliente.

3. A aplicao cliente troca a chave de autenticao pela chave de acesso. Neste passo a aplicao cliente troca a chave de autenticao pela a chave de acesso. Porem a chave de acesso apenas concedida se o usurio autorizou o acesso. A chave de acesso fornecida pela aplicao servidora utilizada pela aplicao cliente para acessar a API da plataforma da aplicao servidora em nome do usurio. A figura 12 exibe o fluxo da aplicao cliente obtendo a chave de autenticao.

FIGURA 12 - Fluxo para obter chave de autenticao. (FONTE: MAFRA, 2010).

38

A figura 13 esta a representao da aplicao cliente pedido permisso a aplicao servidora.

FIGURA 13 - Aplicao servidora concede acesso. (FONTE: MAFRA, 2010).

A figura 14 apresenta o fluxo da aplicao cliente obtendo o token de acesso da aplicao servidora.

FIGURA 14 - Aplicao cliente obtm o token de acesso. FONTE: (MAFRA, 2010).

39

2.9 Concluso Neste captulo apresentou-se o conceito de redes e mdias sociais, quais as suas influncias e como esse espao virtual pode ser usado. Este captulo vem de encontro com o objetivo deste trabalho, abordando especificamente a rede social Facebook, suas funcionalidades, integraes, tipos de acesso por aplicativos de terceiros, e o conceito da estrutura de sua plataforma API Graph. No estudo realizado e descrito neste captulo sobre a plataforma do Facebook, notou-se que possvel no somente integrar aplicativos de terceiros ao grafo social, como utilizar prprios recursos da plataforma. Alguns desses recursos foram apresentados neste captulo, como os plugins sociais. Nos demais captulos so apresentados procedimentos de como utilizar e consumir a API Graph, que resultar na integrao de dados com a rede social do Facebook.

40

3 MODELAGEM DO SISTEMA

Neste captulo apresentada a modelagem do sistema descrevendo o seu conceito, a viso geral do sistema, a definio dos requisitos e o dos casos de uso juntamente com seus diagramas, e a expanso destes casos de uso. Sero apresentados tambm alguns conceitos das tecnologias a serem utilizadas na implementao do sistema.

3.1 UML Muitas pessoas tm a viso de que a UML apenas uma metodologia, mas conforme Wazlawick (2011), UML quer dizer Unified Modeling Language (Linguagem de Modelagem Unificada), ento pode ser dito que uma linguagem que descreve coisas. Segundo Booch al. (2012), a UML uma linguagem padro para a elaborao da estrutura de projetos de software, onde poder ser empregada para a visualizao, a especificao, a construo e a documentao de artefatos que faam uso de sistemas complexos de software. Conforme Wazlawick (2011), a UML est dividida em trs diagramas: a) Diagramas estruturais, sendo posto como diagramas de pacotes, classes, objetos, estrutura composta, componentes e distribuio. b) Diagramas comportamentais, compreendendo os diagramas de casos de uso, atividades e mquina de estados. c) Diagramas de interao, compreendendo os diagramas de comunicao, sequncia, tempo e viso geral de integrao.

41

3.1.1 Processo Unificado UP Segundo Wazlawick (2011), o processo unificado se fundamenta em trs valores: a) dirigido por casos de uso: o planejamento do desenvolvimento feito em funo dos casos de uso identificados, tratando-se prioritariamente os mais complexos. b) centrado na arquitetura: o processo de desenvolvimento prioriza a construo de uma arquitetura de sistema que permita a realizao dos requisitos. Essa arquitetura baseia-se na identificao de uma estrutura de classes, produzida a partir de um modelo conceitual. c) iterativo e incremental: a cada ciclo de trabalho realizado, novas caractersticas so adicionadas arquitetura do sistema, deixando-a mais completa e mais prxima do sistema final. O processo unificado dividido em quatro fases: concepo, elaborao, construo e transio (WAZLAWICK, 2011). A fase de concepo a primeira fase do processo unificado, na qual se procurar levantar os principais requisitos e compreender o sistema de forma abrangente. As fases de elaborao e construo ocorrem em ciclos iterativos. A elaborao incorpora a maior parte da anlise e projeto, e a construo incorpora a maior parte da implementao e testes. Na fase de transio, o sistema, depois de pronto, ser implantado substituindo o sistema atual, seja ela manual ou computadorizado.

3.2 Viso geral do sistema O sistema deve permitir a integrao de dados entre aplicaes de diferentes tipos de plataformas com a rede social Facebook, ou seja, atravs de um servio web ser possvel compartilhar informaes diretamente com os usurios da rede social. As aplicaes de terceiros podero publicar informaes sobre qualquer tipo de assunto

42

desde que respeite as polticas da rede social do Facebook. As informaes a serem compartilhas a partir deste servio sero inicialmente apenas mensagens e imagens. O sistema a ser desenvolvido deve se conectar com a plataforma do Facebook, assim disponibilizando informaes da rede social para aplicaes de terceiros. O sistema deve filtrar a busca das informaes pelo perfil do usurio, por tipos de comentrios e a quantidade de pessoas que curtiram a postagem. O sistema deve permitir que a aplicao informe qual tipo de informao ela quer buscar na rede social, quantidade pessoas que curtiram a postagem, comentrios, informaes bsica de usurio que comentaram ou curtiram postagem, perfil dos amigos dos usurios que curtiram a postagem. O sistema deve permitir que o acesso as informaes da rede social seja adquirida em tempo real. Para que seja possvel integrar as aplicaes com a rede social ser necessrio por parte da aplicao, fornecer o token de acesso ao Facebook para o servio web, onde o servio dever validar o mesmo, e ento apenas aps a validao do token ser possvel compartilhar ou buscar informaes na rede social.

3.3 Levantamento de requisitos As informaes fundamentais, que definem as funcionalidades do servio de integrao com o Facebook, esto citadas nos Quadros 4 ao 20.
QUADRO 4 Requisito publicar mensagem no mural do usurio.

RF01. Publicar mensagem no mural do usurio Descrio:

O servio deve permitir que seja publicado mensagens no mural do usurio. O arquivo XML deve ser validado conforme o tipo da publicao. A mensagem a ser publicada deve ser buscada no arquivo XML. O status da publicao da mensagem deve ser A para que o servio entenda que esta mensagem ainda no foi publicada na plataforma do Facebook. A token de acesso deve ser buscado no arquivo XML.
Restries lgicas: Para que seja publicada a mensagem no mural do usurio necessrio que o usurio tenha um token de acesso vlido. Cabe ao servio validar o token de acesso de cada usurio para publicar a mensagem.

43

QUADRO 5 RF02. Compartilhar mensagem

Requisito compartilhar mensagem

Descrio: O servio deve permitir que seja compartilhadas mensagens no Facebook. O arquivo XML deve ser validado conforme o tipo da publicao. A mensagem a ser compartilhada deve ser buscada no arquivo XML. O status da publicao deve ser A para que o servio entenda que esta mensagem ainda no foi compartilhada. A token de acesso deve ser buscado no arquivo XML. Restries lgicas: Para que seja compartilhada a mensagem necessrio que o usurio tenha um token de acesso vlido. Cabe ao servio validar o token de acesso de cada usurio para compartilhar a mensagem.

QUADRO 6 -

Requisito publicar imagem no mural do usurio.

RF03. Publicar imagem no mural do usurio

Descrio: O servio deve permitir que seja publicada imagens no mural do usurio. O arquivo XML deve ser validado conforme o tipo da publicao. A imagem da publicao deve estar mantida na base de dados do servio. O status da publicao deve ser A para que o servio entenda que a imagem ainda no publicada. A token de acesso deve ser buscado no arquivo XML. Restries lgicas: Para que seja publica a imagem no mural do usurio necessrio que o usurio tenha um token de acesso vlido. Cabe ao servio validar o token de acesso de cada usurio.
QUADRO 7 RF04. Compartilhar imagem

Requisito compartilhar imagem.

Descrio: O servio deve permitir que seja compartilhada imagens na plataforma do Facebook. O arquivo XML deve ser validado conforme o tipo da publicao. A imagem da publicao deve estar mantida na base de dados do servio. O status da publicao deve ser A para que o servio entenda que a imagem ainda no foi compartilhada. A token de acesso deve ser buscado no arquivo XML. Deve ser permitido que seja publicada juntamente com a imagem uma descrio sobre a imagem. A descrio da imagem deve ser buscada no arquivo XML. Restries lgicas: Para que seja compartilhada a imagem necessrio que o usurio tenha um token de acesso vlido. Cabe ao servio validar o token de acesso de cada usurio.

44

QUADRO 8 -

Requisito publicar mensagem na fan page.

RF05. Publicar mensagem na fan page

Descrio: O servio deve permitir que seja publicado mensagens em determinada Fan Page. O arquivo XML deve ser validado conforme o tipo da publicao. A mensagem a ser postada deve ser buscada no arquivo XML. O status da publicao deve ser A para que o servio entenda que esta mensagem ainda no foi publicada na fan page. A token de acesso deve ser buscado no arquivo XML. Restries lgicas: Para que seja publicada a mensagem na fan page necessrio que o usurio tenha um token de acesso vlido. Cabe ao servio validar o token de acesso de cada usurio.
QUADRO 9 RF06. Publicar imagem na fan page

Requisito publicar imagem na fan page.

Descrio: O servio deve permitir que seja publicada imagens em determinada fan page. O arquivo XML deve ser validado conforme o tipo da publicao. A imagem da publicao deve estar mantida na base de dados do servio. O status da publicao deve ser A para que o servio entenda que a imagem ainda no foi publicada. A token de acesso deve ser buscado no arquivo XML.

Restries lgicas: Para que seja publica a imagem na fan page necessrio que o usurio tenha um token de acesso vlido. Cabe ao servio validar o token de acesso de cada usurio.

Uma das opes mais utilizadas no Facebook o curtir e comentar determinada publicao. O servio deve estar apto a realizar estas requisies. Nos quadros 10 e 11 esto descritas estas funcionalidades.
QUADRO 10 - Requisito curtir publicao.
RF07. Curtir publicao

Descrio: O servio deve permitir que o usurio possa curtir uma determinada publicao. O arquivo XML deve ser validado conforme o tipo da publicao. O cdigo da publicao que vai ser curtida deve ser buscado no arquivo XML. A token de acesso deve ser buscado no arquivo XML. Restries lgicas: Validar cdigo do processo da publicao. Para que seja curtida a publicao o usurio tem que possuir token de acesso vlido. Cabe ao servio validar o token de acesso de cada usurio.

45

QUADRO 11 - Requisito comentar publicao.


RF08. Comentar publicao

Descrio: O servio deve permitir que o usurio possa comentar uma determinada publicao. O arquivo XML deve ser validado conforme o tipo da publicao. O cdigo da publicao que vai ser comentada deve ser buscado no arquivo XML. O comentrio deve ser buscado no XML. A token de acesso deve ser buscado no arquivo XML. Restries lgicas: Validar cdigo do processo da publicao. Para que seja comentada a publicao o usurio tem que possuir um token de acesso vlido. Cabe ao servio validar o token de acesso de cada usurio.

Para que seja possvel obter os feedbacks das publicaes efetuadas pelo servio, ser necessrio armazenar as informaes de cada publicao, assim podendo posteriormente recuper-las. Nos Quadros 12 e 13 esto descritos os requisitos que contemplam esta necessidade.
QUADRO 12 - Manter informaes do histrico de publicao de mensagens.
RF09. Manter informaes do histrico de publicao de mensagens

Descrio: O servio deve manter em banco de dados publicaes de mensagens que foram publicadas no mural de determinado usurio. Deve manter o usurio que publicou. Deve manter a mensagem publicada. Deve manter a data da publicao. Deve manter o id da publicao.
QUADRO 13 - Manter informaes do histrico de publicao de imagens
RF10. Manter informaes do histrico de publicao de imagens

Descrio: O servio deve armazenar em banco de dados publicaes de imagens que foram publicadas no mural de determinado usurio. Deve manter o usurio que publicou Deve manter a data da publicao Deve manter o id da publicao.

Para que o servio tenha acesso as informaes de objetos da API Graph, necessrio que se tenha um token de acesso vlido. Muitas vezes o token de acesso do usurio pode sofre modificaes devido a novas requisies, ento sempre necessrio

46

que este token seja validado, e para isto no Quadro 14 foi especificado o requisito que descreve esta necessidade.
QUADRO 14 - Requisito validar token de acesso do usurio.
RF11. Validar token de acesso do usurio

Descrio: O servio deve validar o token de acesso do usurio. No deve permitir que seja realizada qualquer ao na plataforma do Facebook com o token invlido. Deve manter a mensagem do erro quando o token for invlido.

Aps manter as publicaes realizadas pelo servio, possvel obter os feedbacks destas publicaes. Os feedbacks podero ser consultados atravs de um Web Service. A partir do quadro 15 at o quadro 19 esto descritos os requisitos para este fim.
QUADRO 15 - Requisito buscar as 10 publicaes mais curtidas.
RF12. Buscar as 10 publicaes mais curtidas

Descrio: Permite a busca da lista com 10 publicaes mais curtidas no Facebook. Deve ser retornada a lista em um arquivo XML. Os campos que devem ser retornados so (mensagem postada, link da imagem que foi publicada, nome do usurio que publicou, link da imagem do perfil do usurio que publicou, cdigo do processo e a quantidade de curtidas.

QUADRO 16 - Requisito buscar as 10 publicaes mais comentadas.


RF13. Buscar as 10 publicaes mais comentadas

Descrio: Permite a busca da lista com 10 publicaes mais comentadas no Facebook. Deve ser retornada a lista em um arquivo XML. Os campos que devem ser retornados so (mensagem postada, link da imagem que foi publicada, nome do usurio que publicou, link da imagem do perfil do usurio que publicou, cdigo do processo e a quantidade de comentrios.

Nos quadros 17, 18 e 19 esto descritos os requisitos relacionados aos feedbacks das publicaes efetuadas pelo servio integrador.

47

QUADRO 17 - Requisito buscar os usurios que curtiram a publicao.


RF14. Buscar os usurios que curtiram a publicao

Descrio: Permite a busca dos usurios que curtiram determinada publicao atravs do parmetro (Cdigo do processo). Deve ser retornada a lista de usurios que curtiram a publicao em um arquivo XML. Os campos que devem ser retornados so (Id do usurio do Facebook, nome do usurio que curtiu, link da imagem do perfil do usurio e o gnero do usurio).

QUADRO 18 - Requisito buscar os usurios que comentaram a publicao.


RF15. Buscar os usurios que comentaram a publicao

Descrio: Permite a busca dos usurios que comentaram determinada publicao atravs do parmetro (Cdigo do processo). Deve ser retornada a lista de usurios que comentaram a publicao em um arquivo XML. Os campos que devem ser retornados so (Id do usurio do Facebook, nome do usurio que comentou, o link da imagem do perfil do usurio, gnero do usurio e o comentrio).

QUADRO 19 - Requisito buscar informaes da fan page.


RF16. Buscar informaes da fan page

Descrio: Permite a busca das informaes da fan page atravs do parmetro (token de acesso). Deve ser retornadas as informaes da fan page em um arquivo XML. Os campos que devem ser retornados so (Id, nome da fan page, sobre a fan page, categoria, link da pgina, quantidades de usurios que curtiram a pgina e a quantidades dos usurios que esto falando sobre a fan page).

Quando uma publicao no for bem sucedida possvel atravs do Web Service verificar por qual motivo isso ocorreu. No quadro 20 est descrita esta funcionalidade.
QUADRO 20 - Requisito buscar status da publicao.
RF17. Buscar status da publicao

Descrio: Permite a busca do status de uma determinada publicao atravs do parmetro (cdigo do processo). Deve ser retornadas as informaes do status em um arquivo XML. Os campos que devem ser retornados so (cdigo do processo, nmero do erro, mensagem do erro, data do erro).

48

3.4 Casos de uso O quadro 21 indica os casos de uso e a relao entre os requisitos.
QUADRO 21 - Casos de uso vinculados aos seus requisitos.
Caso de Uso UC1 Realizar publicao no Facebook UC2 Buscar feedback de publicaes UC3 Manter publicaes Requisitos Vinculados Requisitos vinculados: RF01, RF02, RF03, RF04, RF05, RF06, RF07, RF08, RF11. Requisitos vinculados: RF11, RF12, RF13, RF14, RF15, RF16, RF17. Requisitos vinculados: RF09, RF10.

3.4.1 Diagrama de caso de uso A figura 15 demonstra o diagrama de caso de uso UC1, onde tambm so apresentados os seus requisitos funcionais. Neste caso de uso est relacionado outro caso de uso UC3, no qual responsvel em manter as informaes das publicaes.
uc UC001-Realizar publicaes no Facebook

RF02-Compartilhar mensagem RF03-Publicar imagem no mural do usurio

RF01-Publicar mensagem no mural do usurio

RF04-Compartilhar imagem

RF05-Publicar mensagem na fan page

UC001-Realizar publicao no Facebook Serv io Integrador RF06-Publicar imagem na fan page

RF07-Curtir publicao RF08-Comentar publicao extend

RF11-Validar token de acesso do usurio UC003-Manter publicaes

RF10-Manter informaes do histrico de publicao de imagens

RF09-Manter informaes do histrico de publicao de mensagens

FIGURA 15 - Diagrama do caso de uso Realizar publicaes no Facebook.

49

A figura 16 apresenta o diagrama de caso de uso UC2, juntamente com a especificao dos seus requisitos.
uc UC002-Buscar feedback de publicaes RF12-Buscar as 10 publicaes mais curtidas RF13-Buscar as 10 publicaes mais comentadas

RF14-Buscar os usurios que curtiram a publicao

UC002-Buscar feedback de publicaes Serv io Integrador RF15-Buscar os usurios que comentaram a publicao

RF17-Buscar status da publicao RF16-Buscar informaes da fan page

FIGURA 16 - Diagrama do caso de uso Buscar feedback de publicaes.

3.4.2 Diagrama de atividades Para a realizao de publicaes no Facebook atravs do servio integrador necessrio passar as informaes em um arquivo XML via web service. O fluxo deste processo esta descrito na figura 17. O servio integrador fica monitorando a base de dados para identificar as publicaes que sero realizadas no Facebook. Visto que estas publicaes so derivadas do arquivo XML que foi repassado via web service. A figura 18 identifica a rotina deste processo. A figura 19 representa o diagrama de atividades do processo de retorno das informaes de uma determinada fan page pertencente a um usurio cadastrado no Facebook. Para retorno das informaes de uma determinada publicao foi construdo uma rotina no servio integrador que fica monitorando a plataforma do Facebook, para posteriormente obter o feedback desta publicao. A figura 20 demonstra este fluxo.

50
act Publicao v ia Web Serv ice Ini ci o publ i cao WS

Obter o arquiv o XM L da aplicao

Validar arquiv o XM L

Verifica qual o tipo de publicao

M anter XM L em BD do serv io integrador

Retorna cdigo do processo da publicao

Fi m publ i cao WS

FIGURA 17 - Diagrama de atividade de publicao via servio web.

act Publicao v ia serv io integrador Ini ci o publ i cao vi a servi o i ntegrador

Obter o token de acesso do XM L

Validar token de acesso

[T oken i nvl i do]

M anter erro de publicao

[T oken vl i do]

Realizar a publicao no Facebook

M anter informaes da publicao

Fi m da publ i cao vi a servi o i ntegrador

FIGURA 18 - Diagrama de atividade de publicao via servio integrador.

51

act Feedback Fan Page

Ini ci o feedback Fan Page

Obter o token de acesso do perfil do usurio

Validar token de acesso

[T ok en i nvl i do]

[T ok en vl i do]

Retorna XM L informando o erro

Verifica se existe Fan Page do perfil

[No exi s te Fan Page] [Exi s te Fan Page]

Buscar informaes da Fan Page no Facebook

Retornar XM L com as informaes

Fi m feedback Fan Page

FIGURA 19 - Diagrama de atividade do feedback da Fan Page.

act Feedback de publicao Ini ci o feedback de publ i cao

Obter cdigo da publicao

Validar cdigo do processo

[Cdi go i nvl i do] Retornar XM L informando o erro [Cdi go vl i do]

M ontar XM L com as informaes do feedback

Retornar o arquiv o XM L

Fi m feedback publ i cao

FIGURA 20 - Diagrama de atividade do feedback de publicaes.

52

3.5 Expanso de Casos de Uso Nos quadros 22 e 23 esto demonstrados os casos de uso expandidos com suas sequncias alternativas.
QUADRO 22 - Caso de uso expandido realizar publicao no Facebook.
UC1 Realizar publicao no Facebook 1. [IN] Obter o arquivo XML da publicao. 1.1. O servio valida o arquivo XML. 1.2 Verifica qual tipo de publicao que ser realizada. 2. [IN] Obter o token de acesso do usurio pelo arquivo XML. 3. O Servio verifica se o token de acesso vlido 3.1 Variante: Token de acesso vlido. 3.2 Variante: Token de acesso invlido. Variante 3.1: Token de acesso vlido 3.1.1 Servio realiza a publicao na plataforma do Facebook conforme o tipo da publicao configurado no XML. 3.1.2 Servio armazena no banco de dados as informaes da publicao como: id do usurio, id do post e data a da publicao. Variante 3.2: Token de acesso invlido 3.2.1 A publicao no ser realizada. 3.2.2 Armazena no banco de dados o status do erro de token invlido.

QUADRO 23 - Caso de uso expandido buscar feedback de publicao.


UC2 Buscar feedback de publicaes 1. [IN] Obter o arquivo XML do feedback. 1.1 O servio valida o arquivo XML. 1.2 Verifica qual tipo de feedback ser retornado. 2. [IN] Obter o cdigo do processo retornado no XML. 3. O Servio verifica se o cdigo do processo valido. 3.1 Variante: Cdigo do processo vlido. 3.2 Variante: Cdigo do processo invlido. Variante 3.1: Cdigo do processo vlido 3.1.1 Monta o arquivo XML com as informaes da publicao conforme o tipo de feedback. 3.1.2 [OUT] Retorna o arquivo XML. Variante 3.2: Cdigo do processo invlido 3.2.1 Monta o arquivo XML com a descrio do erro. 3.2.2 [OUT] Retorna o arquivo XML.

3.6 Arquitetura em camadas A arquitetura de camadas utilizada dentro de um paradigma de orientao a objetos. Assim sendo, as camadas, as intercamadas e o mdulo de acesso so

53

compostos por classes (WAZLAWICK, 2011). Para implementao deste trabalho, ser construdo uma arquitetura de software de 4 camadas, contendo a camada de interface, camada de domnio e de negcio, e a camada de persistncia de dados. A figura 21 representa o layout da diviso de camadas para elaborao deste projeto.

FIGURA 21 - Layout da diviso de camadas de projeto do servio integrador.

A construo de projetos em multicamadas tem vrias vantagens, mas por sua vez existem algumas desvantagens como descreve abaixo algumas comparaes: 3.6.1 Vantagens Facilidade da diviso do trabalho, suporte ao desenvolvimento e testes incrementais. Reutilizao de camadas, possibilidades de padronizaes de interfaces, manipulao (portabilidade), testabilidade, entre alguns outros. 3.6.2 Desvantagens

54

Algumas mudanas se propagam para as outras camadas, menor eficincia e nem todos os sistemas so facilmente divididos em camadas. 3.6.3 Projeto da camada de interface A camada de interface responsvel pela interface com o usurio. Esta camada trata a respeito de formulrios, menus, janelas, botes, fontes ou outras formas de comunicar o usurio com o sistema (MEDEIROS, 2004). No projeto apresentado neste trabalho a camada de interface ser representada pela criao de um web service, onde este conectar o usurio com as funcionalidades do servio de integrao com o Facebook. Sero disponibilizados mtodos pblicos para que usurios de aplicaes de terceiros possam consumir as funes do servio integrador. 3.6.4 Projeto da camada de domnio Nesta camada esto representadas todas entidades relacionais que compem o projeto com o todo. Todas as outras camadas so derivadas ou dependentes da camada de domnio, servindo para conectar com os aspectos fsicos da computao (redes, interfaces, dispositivos de armazenamento etc.) (WAZLAWICK, 2011). Conforme descreve Wazlawick (2011), a camada de domnio camada onde se encontra toda lgica das regras de negcios do sistema. Porm neste trabalho as regras de negcios e validaes esto separadas em outra camada especfica. Todas as validaes e regras de negcios esto feitas na camada de negcio, onde esta camada est fortemente relacionada com a camada de domnio.

55

A figura abaixo (22) representa o diagrama de classes da camada de domnio.


obj ect Modelo de Domnio FacebookUserVO property + AccessT oken() : string + FacebookUserId() : string + LinkPictureUserProfile() : string + ListFacebookUsersPost() : IList<FacebookUserPostVO> + PictureUserProfile() : byte[] + UserId() : int + UserName() : string 1 0..* HistoryPostUserVO property + CreateDatePost() : DateT ime + MessagePosted() : string + PostId() : string + UserId() : int 1..* FeedbackLikesVO property + FeedbackLikeId() : int + HistoryUserId() : int + UserId() : string + UserName() : string FacebookUserPostVO property + CreateDatePost() : DateT ime + LinkPictureUserPost() : string + MessagePost() : string + PictureUserPost() : byte[] + StatusProcess() : char + UserId() : int

0..*

1..*

0..1

0..* FeedbackCommentVO property + DescriptionComment() : string + FeedbackCommentId() : int + HistoryUserId() : int + UserId() : int + UserName() : string

FIGURA 22 - Diagrama de classes da camada de domnio.

3.6.5 Projeto da camada de negcio Esta camada responsvel pela realizao de toda a lgica do sistema juntamente com o controle das regras de negcios da aplicao. nesta camada que se modela o comportamento das entidades envolvidas na aplicao, as regras e os processos que operam sobre estas entidades. A camada de negcio a camada da arquitetura do software que correspondente ao conjunto de classes que vai realizar toda a lgica de acesso e transformao dos dados do sistema de informao. Outras camadas como (persistncia, interface, segurana, etc). So derivadas ou dependentes da camada de

56

negcio (WAZLAWICK, 2011).

A figura 23 exibe a estrutura das principais classes com suas propriedades e mtodos correspondentes a camada de negcio do servio de integrao com o Facebook.
obj ect Modelo de Negcio

interface IFacebookPostImageServ ice + PostImageWallUsers(IList<FacebookUserVO>) : void + +

interface IFacebookUserPostServ ice GetListPostsUser(int) : IList<HistoryUserPostVO> PostMessageWallUsers(IList<FacebookUserVO>) : void

FacebookPostImageServ iceImpl + _facebookUserDAO: IFacebookUserDAO _facebookUserPostDAO: IFacebookUserPostDAO InsertFacebookUserPost(HistoryUserPostVO) : void PostImageUser(string, HistoryUserPostVO) : void PostImageWallUsers(IList<FacebookUserVO>) : void UpdateStatusPostProcess(int, char) : void + + -

FacebookUserPostServ iceImpl _facebookUserDAO: IFacebookUserDAO _facebookUserPostDAO: IFacebookUserPostDAO GetListPostsUser(int) : IList<HistoryUserPostVO> InsertFacebookUserPost(HistoryUserPostVO) : void PostMessageUser(string, HistoryUserPostVO) : void PostMessageWallUsers(IList<FacebookUserVO>) : void UpdateStatusPostProcess(int, char) : void

property + FacebookUserDAO() : IFacebookUserDAO + FacebookUserPostDAO() : IFacebookUserPostDAO

property + FacebookUserDAO() : IFacebookUserDAO + FacebookUserPostDAO() : IFacebookUserPostDAO

interface IFeedbackLikesServ ice + InsertFeedbackLikes(IList<FacebookUserVO>) : void + + + +

interface IFacebookUserServ ice GetListAllFacebookUsers() : IList<FacebookUserVO> GetListFacebookPostByUserId(int) : IList<FacebookUserPostVO> GetListFacebookUsers() : IList<FacebookUserVO> UpdateStatusMessageProcess(int, char) : void

FeedbackLikesServ iceImpl + _facebookUserPostDAO: IFacebookUserPostDAO _feedbackLikesDAO: IFeedbackLikesDAO GetFeedbackLikePost(string, HistoryUserPostVO) : void InsertFeedbackLikes(IList<FacebookUserVO>) : void LoadFeedbackLikeUser(string, int) : IList<FeedbackLikesVO> RecordFeedbackLikeUsers(IList<FeedbackLikesVO>) : void + + + + +

FacebookUserServ iceImpl _facebookUserDAO: IFacebookUserDAO GetListAllFacebookUsers() : IList<FacebookUserVO> GetListFacebookPostByUserId(int) : IList<FacebookUserPostVO> GetListFacebookUsers() : IList<FacebookUserVO> TesteXml() : void UpdateStatusMessageProcess(int, char) : void

property + FacebookUserPostDAO() : IFacebookUserPostDAO + FeedbackLikesDAO() : IFeedbackLikesDAO

property + FacebookUserDAO() : IFacebookUserDAO

FIGURA 23 - Diagrama de classes da camada de negcios.

3.6.6 Projeto da camada de persistncia

57

Essa camada responsvel pelo armazenamento fsico dos dados. Esses dados podem estar armazenados em Bases de Dados Relacionais, Bases de Dados Orientadas a Objetos, Arquivos Texto, etc. Todas as operaes e consultas de alguma interface so realizadas atravs da camada de negcio, e no atravs de expresses SQL. Ento cabe ao mecanismo de persistncia, garantir os objetos sejam salvos em um dispositivo de memria secundria e que de l sejam recarregados quando necessrio WAZLAWICK (2011).

A figura 24, demostra a estrutura das principais classes e mtodos da camada de persistncia de dados do servio de integrao com o Facebook.

object Modelo Persistncia

interface IFacebookUserDAO + + + + GetListAllFacebookUsers() : IList<FacebookUserVO> GetListFacebookPostByUserId(int) : IList<FacebookUserPostVO> GetListFacebookUsers() : IList<FacebookUserVO> UpdateStatusPostProcess(int, char) : void

interface IFeedbackLikesDAO + GetListUserLikesByHistoryPostId(int) : IList<FeedbackLikesVO> + GetUserLikesCount(FeedbackLikesVO) : int + InsertFeedbackLikes(FeedbackLikesVO) : void

AdoDaoSupport FacebookUserDAOImpl FeedbackLikesDAOImpl + + + + _queryGetFacebookUser: string = @"SELECT USERID... _queryGetListAllFacebookUser: string = @"SELECT USERID... _queryGetListFacebookPostByUser: string = @"SELECT USERID... _queryGetListFacebookUsersPost: string = @"SELECT TBFACE... _queryInsertHistoryUserPost: string = @"INSERT INTO T... _queryUpdateStatusProcess: string = @"UPDATE TBFACE... GetListAllFacebookUsers() : IList<FacebookUserVO> GetListFacebookPostByUserId(int) : IList<FacebookUserPostVO> GetListFacebookUsers() : IList<FacebookUserVO> UpdateStatusPostProcess(int, char) : void _queryGetListUserLikesByHistoryPostId: string = @"SELECT FEEDBA... _queryStringGetLikeUserCount: string = @"SELECT COUNT(... _queryStrinInsertFeedbackLike: string = @"INSERT INTO T... AdoDaoSupport

+ GetListUserLikesByHistoryPostId(int) : IList<FeedbackLikesVO> + GetUserLikesCount(FeedbackLikesVO) : int + InsertFeedbackLikes(FeedbackLikesVO) : void

interface IFacebookUserPostDAO + GetListPostsUser(int) : IList<HistoryUserPostVO> + InsertFacebookUserPost(HistoryUserPostVO) : void

AdoDaoSupport FacebookUserPostDAOImpl _queryInsertHistoryUserPost: string = @"INSERT INTO T... _queryStringGetListPostings: string = @"SELECT HISTOR...

+ GetListPostsUser(int) : IList<HistoryUserPostVO> + InsertFacebookUserPost(HistoryUserPostVO) : void

58

FIGURA 24 - Diagrama de classes da camada de persistncia.

3.6.7 Projeto lgico do banco de dados Na figura 25, esta apresentado o diagrama de banco de dados do servio de integrao com o Facebook, bem como as relaes entre as tabelas e o tipo de cada propriedade.

59

FIGURA 25 - Diagrama lgico de banco de dados.

3.7 Concluso Neste captulo foi apresentada a viso geral do sistema, descrevendo as suas funcionalidades. Foram definidos os requisitos que sero necessrios para que o sistema funcione de acordo com que proposto nos casos de uso. Foram elaborados os casos de uso conforme os objetivos da criao do servio integrador com o Facebook, alm de apresentar as ligaes entre os requisitos e os casos de uso atravs das apresentaes dos diagramas de caso de uso. No andamento do processo de modelagem foram aprestadas as expanses dos casos de uso, assim demostrando o passo a passo de cada caso de uso. Tambm apresentado neste captulo a modelagem de diagramas de classes das camadas de domnio, negcio e a camada de persistncia, onde tambm foi acrescentado a modelagem do diagrama lgico de banco de dados. Conforme a modelagem apresentada neste captulo, tem visto que ao realizar as implementaes do sistema no prximo captulo, surgiro novos requisitos e casos

60

de uso, bem como a mudana daqueles que j foram apresentados. Define-se, ento, que o processo de modelagem de sistema uma das fases mais importante na construo de software, onde se permite ter a viso de negcios do sistema a ser implementado, sendo assim evitando-se o mximo possvel de retrabalho na construo do software.

61

4 IMPLEMENTAO DO SISTEMA

Neste captulo apresenta-se o processo de desenvolvimento do servio de integrao de dados como Facebook elaborado neste trabalho. Para elaborao deste desenvolvimento sero utilizadas as ferramentas de programao da Microsoft Visual Studio 2010 com a linguagem entre outras ferramentas que sero apresentadas neste captulo.

4.1 Tecnologias utilizadas Devido algumas restries do sistema a ser implementado sero necessrios a utilizao de algumas tecnologias e ferramentas. Abaixo so descritos breves conceitos destas tecnologias.

4.1.1 Web Service Segundo Basha, et. (2002) permite realizar chamadas de procedimento remoto de um objeto pela internet ou por uma rede. Utiliza padres neutros de plataforma, como HTTP e XML. O cliente precisa conhecer o URL do servio, e os tipos de dados usados para as chamadas do mtodo, porm no precisa saber se o servio web foi criado em Java e se est executando em Linux, ou se foi criado em Web APS.NET que executado no Windows. Conforme afirma Basha, et. (2002), um modelo conceitual de um servio Web destacado dois elementos importantes de qualquer sistema papis e operaes. Papis se referem aos diferentes tipos de entidades; as operaes representam as

62

funes executadas por estas entidades, isso necessrio para que o servio Web possa funcionar. O diagrama abaixo se refere a um modelo comum de servios Web, podendo identificar trs tipos de papis em um ambiente de servios Web tpico, bem como as operaes que eles executam para fazer os servios (BASHA, et. 2002). A figura 26 representa a estrutura de um servio web bem como as suas trs funcionalidades principais.

FIGURA 26 - Estrutura do servio web. FONTE: Basha, et. (2002)

As funcionalidade de cada quadro representado na figura acima (23) esto descritas abaixo: Provedor de servios O provedor de servios a entidade que cria o servio Web. O provedor de servio precisa fazer duas coisas para ter acesso a todo potencial de um servio Web. Primeiramente precisa descrever o servio Web em um formato padro, que seja compreensvel por qualquer um venha utiliza-lo. Em segundo lugar o provedor de servio deve publicar os detalhes sobre o servio Web para que esteja publicamente disponvel para todos os interessados. Consumidor de Servios Qualquer empresa que venha utilizar um servio Web criado por um servidor de servios chamado de consumidor de servios. O consumidor de servios pode obter, a partir da descrio do servio, o mecanismo par

63

vnculo com o servio Web do provedor de servios, podendo ento chamar este servio. Registro dos servios - Um registro de servio a localizao central onde o provedor de servios pode relacionar os seus servios Web e com isso o consumidor de servios pode pesquisar servios Web. Informaes como detalhar da empresa, servios Web por ela fornecidos e detalhes sobre cada servio Web, detalhes tcnicos, so armazenados no registro do servio (BASHA, et. 2002). 4.1.2 XML Conforme definido Basha, et. (2002), os servios Web utilizam o protocolo SOAP no qual baseado em XML para troca de informaes entre aplicaes, independentemente do sistema operacional, do ambiente de programao e do modelo do objeto.
XML significa Extensible Markup Language (Linguagem de Marcao Extensvel). Linguagens de marcao compreendem todas aquelas que possibilitam a formatao de elementos por meio de tags e atributos como o HTML e XHTML. Por ser extensvel, o XML possibilita a criao de elementos, ou seja, voc mesmo pode inventar as suas tags. Eis aqui um dos fatores que a tornam a linguagem preferida na transao e armazenamento de dados. Voc pode criar uma srie de elementos e por, meio de um acordo, todas as pessoas ou empresas que estejam usando os mesmos dados podero adotar o mesmo vocabulrio, e assim facilitar o processo de intepretao das informaes para os mais variados sistemas envolvidos (DCIO, 2000).

SOAP um protocolo superficial e simples, pois tudo o que necessrio que os dados de XML passem pelo HTTP. Ele no tenta definir um modelo de programao ou implementar APIs especficas (BASHA, et. 2002). 4.1.3 JSON Conforme Wikipdia JSON (JavaScriptObjectNotation), um formato leve de intercmbios de dados computacionais. um conjunto de notaes de objeto de JavaScript, mas seu no requer JavaScript exclusivamente (Wikipdia, 2012).

64

O JSON um formato de troca de dados que tambm serve para serializar objetos. Um objeto na memoria poder ser transformado em um formato independente da linguagem e ser transportado por qualquer meio at os seu destino, de maneira semelhante ao SOAP (SAMPAIO, 2007).

JSON um formato simples no compartilhamento de informaes e no depende da linguagem de programao Richardson (2007). 4.1.4 SDKs do Facebook O Facebook permite tambm que aplicativos mveis tenham acesso aos mesmos recursos disponibilizados para pginas web (FACEBOOK, 2012). A plataforma do Facebook suporta integrao com outros aplicativos de

diferentes plataformas como mostra a tabela abaixo (FACEBOOK, 2012). O Quadro 24 lista as SDKs que podem ser utilizadas por aplicativos mveis e web para realizar a integrao com a plataforma Facebook.
QUADRO 24 - SDKs do Facebook para aplicativos de terceiros.
SDK JavaScript SDK PHP SDK DESCRIO Permite que o acesso a todos os recursos da API Graph e caixas de dilogos atravs de JavaScript. Fornece suporte aos aplicativos Web criado em linguagem PHP. Esta biblioteca ajuda adicionar botes de chamadas como LoginFacebook e d suporte a API Graph. Este SDK fornece suporte da API Graph para aplicativos do iPad, iPhone e iPod Touch escritos na linguagem ObjectiveC. Permite realizar chamadas para API Graph do Facebook, como exibir caixas de dilogos da plataforma do Facebook. Integra os recursos da API Graph do Facebook com aplicativos mveis criados sobre o sistema operacional Android. Permite o acesso a todos os recursos da API Graph por aplicaes que utilizam a linguagem de programao C# da Microsoft como base de desenvolvimento de softwares. PLATAFORMA Web Sites Web Sites

iOS SDK (iPhone & iPad)

Aplicativos Mveis

Android SDK

Aplicativos Mveis

Facebook C# SDK

Aplicativos Desktops e Web para plataforma Windows.

4.2 Ferramentas utilizadas Para implementaes do servio integrador e do servio web foi utilizado a fermenta de desenvolvimento Visual Studio 2010 na plataforma .NET que possui suporte a linguagem de programao C#. Para o desenvolvimento da integrao com a

65

plataforma do Facebook foi utilizado o Facebook C# SDK que permite a acesso a todos os recursos da API Graph. Para armazenamento de dados foi utilizado o SQL Server 2008 Express, o qual uma verso gratuita disponibilizada pela Microsoft. Para modelagem dos diagramas de casos de uso e de classes, foi utilizado a ferramenta Enterprise Architecture (EA).

4.3 Implementao do sistema Nesta seo sero apresentadas algumas das classes criadas do servio integrador, destacando as suas implementaes o a integrao de dados com o Facebook. Para consumir as funcionalidades da API do Facebook, ser utilizada dll Facebook C# SDK 5.4.1, onde contem um conjunto de classes que permite integrar o Facebook com aplicaes da plataforma .Net 4.3.1 Criao de aplicaes no Facebook Para utilizao das funcionalidades encontradas na API Graph necessrio criar um aplicativo dentro da plataforma do Facebook, onde todas as publicaes e recuperaes de informaes dos objetos da plataforma utilizaro desta ferramenta para a concluso da processo. O link https://developers.facebook.com/apps da acesso a pgina de criao de aplicaes utilizando a API Graph. Na Figura 27 mostra o formulrio de criao da aplicao TellMe, na qual ser utilizada para a realizao dos testes e de todo o processo de desenvolvimento.

66

FIGURA 27 - Formulrio de criao da APP. FONTE: Facebook (2012).

Na figura 28 esto as informaes bsicas da aplicao j criada, onde exibe os campos App ID que a idenficao do APP para outros aplicativos de terceiros, e o campo App Secret que o cdigo secreto da aplicao, onde este utilizado como autenticao da APP.

FIGURA 28 - Formulrio de informaes bsicas da APP. FONTE: Facebook (2012).

4.3.2 Integrao com o Facebook Para poder publicar ou obter informaes em nome de um usurio do

67

Facebook necessrio que se tenha o token de acesso deste usurio. O quadro 25 demostra como obter a URL de conexo da pgina de login do Facebook.
QUADRO 25 - Cdigo fonte do mtodo GenerateLoginUrl. public string GenerateLoginUrl(string appId) { string extendedPermissions = "user_about_me,publish_stream,manage_pages,friends_activities,user_likes,friends_likes,offlin e_access"; StringBuilder urlLoginFacebook = new StringBuilder(); urlLoginFacebook.Append("https://www.facebook.com/dialog/oauth?client_id={0}&"); urlLoginFacebook.Append("redirect_uri=https://www.facebook.com/connect/login_success.ht ml&"); urlLoginFacebook.Append("response_type=token&"); urlLoginFacebook.Append("display=popup&"); urlLoginFacebook.Append(string.Format("scope={0}", extendedPermissions)); if (!string.IsNullOrEmpty(appId)) return string.Format(urlLoginFacebook.ToString(), appId); else return string.Format(urlLoginFacebook.ToString(), "515673848444156"); }

1 2 3

4 5 6 8 9 10 11 12 13 14 15 16 17

O mtodo GenerateLoginUrl um dos mtodos disponvel no servio web. Este tem o objetivo de gerar a URL de conexo com o Facebook. Na linha 1 passado o parmetro appId, onde este a identificao da aplicao que ser responsvel em efetuar a integrao de dados. Este parmetro pode ser nulo, e quando nulo a URL ser formada com a aplicao padro do servio que App TellMe. A linha 3 est declara a varivel extendedPermissions, no qual receber os tipos de permisses que usurio vai conceder conforme descreve nos quadro 3 e 4. Da linha 5 at a linha 11 construda a URL de retorno do login. Na linha 6 encontra-se a URL que d acesso a pgina de dialogo do login, onde tambm posteriormente vai ser concatenado com o appId como mostra da linha 13 at a 16. Na linha 9 determina que o retorno aps informar o login e senha do usurio vai ser o parmetro token de acesso. Na linha 11 concatena as permisses com a URL. Para exemplificar esta conexo foi desenvolvida na aplicao de teste a tela

68

de login, onde a implementao foi realizada na plataforma .Net como demonstra no quadro 26 baixo.
QUADRO 26 - Cdigo fonte da tela de login com Facebook. private void FormConectar_Load(object sender, EventArgs e) { string urlConnectionFacebook = wsIntegration.GenerateLoginUrl(string.Empty); WBConnectFacebook.Navigate(urlConnectionFacebook); } private void WBConnectFacebook_Navigated(object sender, WebBrowserNavigatedEventArgs e) { string access_token; string[] fragmentsToken; if (e.Url.Fragment.Contains("access_token")) { fragmentsToken = e.Url.Fragment.Replace("#access_token=", "").Split('&'); } }

1 2 3 4 5 6 7 8 9 10 11 12 13 14

A linha 1 representa a chamada do mtodo FormConectar_Load onde este executado no momento em que o formulrio esta sendo carregado. Para exibir a pgina de conexo com o Facebook foi utilizado o componente WebBrowser que por sua vez chamado o mtodo Navigate onde passado a URL do login que foi retornada do web service como mostra a linha 3. Na linha 10 existe a verificao na URL de retorno do Facebook, para identificar se contem o parmetro access_token. Quando a autenticao ocorrer bem, retornado a token na prpria URL, assim sendo possvel captur-la como descreve a linha 12.
QUADRO 27 - Cdigo fonte do mtodo PostStatusMessageFanPage. private void PostStatusMessageFanPage(PostFacebookVO postFacebook) { var fbClient = new FacebookClient(postFacebook.Post.AccessToken); fbClient.PostCompleted += (o, e) => { dynamic postData = e.GetResultData(); HistoryPostVO historyPost = new HistoryPostVO(); historyPost.HistoryFacebookId = postData.post_id; historyPost.HistoryPostCod = postFacebook.PostCod;

1 2 3 4 5 6 7 8 9 10

69

11 12 13 14 15 16 17 18 19 20 21 22 23

historyPost.HistoryPostCreateDate = DateTime.Now; historyPostDAO.InsertHistoryPost(historyPost); postFacebook.StatusProcess = "P"; _postFacebookDAO.UpdateStatusPost(postFacebook); }; dynamic resultFanPage = fbClient.Get("me/accounts?fields=access_token,id"); dynamic parameters = new ExpandoObject(); parameters.message = postFacebook.Post.MessagePost; parameters.access_token = resultFanPage.data[0].access_token; fbClient.PostAsync(string.Format("/{0}/feed", resultFanPage.data[0].id), parameters); }

Uma das principais funcionalidades do servio integrador a publicao de mensagens e imagens. O quadro 27 demostra o cdigo do mtodo PostStatusMessageFanPage implementado na classe FanPageServiceImpl que este responsvel em publicar mensagens (status) de uma pgina do Facebook (Fan Page). Na linha 3 criada uma instncia do objeto fbClient que deriva da classe FacebookClient que disponibilizada pela SDK do Facebook. Neste momento passado como parmetro o token de acesso do usurio. Da linha 17 20 est o cdigo que parametriza as informaes que sero publicadas na Fan Page juntamente com sua mensagem. A linha 22 chamado o mtodo PostAsync passando como parmetros o diretrio da plataforma do Facebook e os parmetros pr-configurados. Este mtodo responsvel em publicar a mensagem. Quando publicado na plataforma do Facebook criado um objeto o qual identificado por um id. Da linha 7 a 14 est implementada a rotina de armazenamento deste identificador em base de dados, para que posteriormente possa ser retornado os feedbacks deste post.
QUADRO 28 - Cdigo fonte do mtodo PostStatusImageFanPage. private void PostStatusImageFanPage (PostFacebookVO postFacebook) { var fbClient = new FacebookClient(postFacebook.Post.AccessToken);

1 2 3 4

70

5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28

fbClient.PostCompleted += (o, e) => { dynamic postData = e.GetResultData(); HistoryPostVO historyPost = new HistoryPostVO(); historyPost.HistoryFacebookId = postData.post_id; historyPost.HistoryPostCod = postFacebook.PostCod; historyPost.HistoryPostCreateDate = DateTime.Now; historyPostDAO.InsertHistoryPost(historyPost); postFacebook.StatusProcess = "P"; _postFacebookDAO.UpdateStatusPost(postFacebook); }; dynamic resultFanPage = fbClient.Get("me/accounts?fields=access_token,id"); dynamic postImage = new ExpandoObject(); postImage.message = postFacebook.Post.MessagePost; postImage.access_token = resultFanPage.data[0].access_token; postImage.source = new FacebookMediaObject { ContentType = "image/jpeg", FileName = "Oferta!" }.SetValue(postFacebook.PostImagem); fbClient.PostAsync(string.Format("/{0}/photos", resultFanPage.data[0].id), postImage); }

A API Graph disponibiliza que aplicativos tambm possam publicar imagens em nome de uma Fan Page. O quadro 28 exibe o cdigo desta funcionalidade. Para publicao de imagens no Facebook atravs da API Graph mantem-se a mesma estrutura de mtodo do post de mensagens adicionando um novo parmetro source que se encontra na linha 21 carregando a imagem na linha 25. A imagem deve estar convertida em um array de bytes para que o processo de publicao funcione. Para a concluso da publicao de imagens chamado o mtodo PostAsync passando como parmetros o diretrio da plataforma do Facebook e os parmetros prconfigurados.
QUADRO 29 - Cdigo fonte do mtodo InsertHistoryPost. private const string _queryInsertHistoryPost = @"INSERT INTO TBPOSTHISTORY (POSTFACEBOOKID, POSTCOD, POSTCREATEDATE) VALUES ({0}POSTFACEBOOKID, {0}POSTCOD, {0}POSTCREATEDATE)"; public void InsertHistoryPost(HistoryPostVO historyPost) {

2 3 4

71

5 6 7 8 9 10 11 12 13 14

string prefix = DbProvider.DbMetadata.ParameterNamePrefix; string querySql = string.Format(_queryInsertHistoryPost, prefix); IDbParametersBuilder parameters = CreateDbParametersBuilder(); parameters.Create().Name("POSTFACEBOOKID").Value(historyPost.HistoryFacebookId).Ty pe(DbType.String); parameters.Create().Name("POSTCOD").Value(historyPost.HistoryPostCod).Type(DbType.Gu id); parameters.Create().Name("POSTCREATEDATE").Value(historyPost.HistoryPostCreateDate) .Type(DbType.DateTime); AdoTemplate.ExecuteNonQuery(CommandType.Text, querySql, parameters.GetParameters()); }

Para que se seja possvel manipular determinadas publicaes como: curtir, comentar, buscar informaes necessrio armazenar a o identificador do post em base de dados. O quadro 29 demostra a implementao desta funo para manter o histrico de publicaes. Na linha 1 contm a varivel queryInsertHistoryPost que recebe a string de comando sql para manter o histrico do post na tabela TBPostHistory. Da linha 10 at 12 so criados os parmetros necessrio para insero que so eles: id do post, cdigo do processo da publicao e a data de criao. A linha 13 executada para inserir o registro na tabela TBPostHistory com os parmetros j definidos. No quadro 30 descreve a implementao da opo curtir, onde o servio web capaz de curtir uma determinada publicao, desde que esta seja publicada pelo servio integrador.
QUADRO 30 - Cdigo fonte do mtodo ActionLikePost. private void ActionLikePost (PostFacebookVO postFacebook) { var fbClient = new FacebookClient(postFacebook.Post.AccessToken); dynamic parametersLike = new ExpandoObject(); parametersLike.access_token = postFacebook.Post.AccessToken; fbClient.PostAsync(string.Format("/{0}/likes", postFacebook.Post.PostId), parametersLike); }

1 2 3 4 5 6 7 8

Na linha 3 criada uma instancia do objeto fbClient que deriva da classe FacebookClient que disponibilizada pela SDK do Facebook.

72

Da linha 5 7 esta implementada a rotina para curtir determinada publicao. Para isso necessrio o id do post que foi realizado, no qual este deve estar carregado na propriedade PostId do objeto postFacebook. O diretrio like responsvel por esta funcionalidade na plataforma nativa do Facebook como mostrado na linha 7. Tambm possvel comentar publicaes de usurios como mostra no quadro 31.
QUADRO 31 - Cdigo fonte do mtodo ActionCommentPost. private void ActionCommentPost (PostFacebookVO postFacebook) { var fbClient = new FacebookClient(postFacebook.Post.AccessToken); fbClient.PostCompleted += (o, e) => { dynamic postData = e.GetResultData(); HistoryPostVO historyPost = new HistoryPostVO(); historyPost.HistoryFacebookId = postData.post_id; historyPost.HistoryPostCod = postFacebook.PostCod; historyPost.HistoryPostCreateDate = DateTime.Now; historyPostDAO.InsertHistoryPost(historyPost); postFacebook.StatusProcess = "P"; _postFacebookDAO.UpdateStatusPost(postFacebook); }; dynamic parametersComments = new ExpandoObject(); parametersComments.access_token = postFacebook.Post.AccessToken; parametersComments.message = postFacebook.Post.MessagePost; fbClient.PostAsync(string.Format("/{0}/comments", postFacebook.Post.PostId), parametersComments); }

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

Como j padro de outras implementaes deste projeto o mtodo ActionCommentPost mantem a mesma estrutura, onde este responsvel em comentar determinado post, para isso necessrio que se tenha o id da publicao realizada como demostra na linha 21. A linha 21 tem a funo de publicar o comentrio no Facebook em nome do usurio pertencente ao token de acesso como descreve a linha 3. Da linha 7 a linha 14 est a rotina para manter o histrico do comentrio

73

efetuado pelo servio.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

QUADRO 32 - Cdigo fonte do mtodo GetFeedbackLikePost. private void GetFeedbackLikePost(string accessToken, HistoryPostVO historyPost) { var fbClient = new FacebookClient(accessToken); dynamic result = fbClient.Get(string.Format("{0}/likes?fields=id,name", historyPost.HistoryFacebookId)); if (result.data.Count > 0) { FeedbackUserLikeJson loadFeedbackLikeUser = LoadFeedbackLikeUser(result.ToString(), historyPost.HistoryPostId); foreach (var Userlikes in loadFeedbackLikeUser.data) { dynamic resultUser = fbClient.Get(string.Format("/{0}?fields=gender,picture", Userlikes.id)); Userlikes.gender = resultUser["gender"]; Userlikes.picture = resultUser["picture"]["data"]["url"]; RecordFeedbackCommentsUsers(Userlikes); } } }

Quando realizado uma publicao via servio integrador, possvel buscar os feedbacks destas publicaes. Para isso o servio fica monitorando a plataforma do Facebook para buscar quem curtiu a publicao. A linha 4 descreve o diretrio da plataforma Facebook a qual responsvel em retornar os usurios que curtiram determinado post. Tambm foi definido que ser retornado apenas o id e o nome do usurio. Caso o post verificado tenha sido curtido, o servio verificar se o usurio que curtiu j esta cadastro em base de dados como mostra na linha 8. Quando identificado que o post foi curtido por usurio e esse ainda no esta mantido em base de dados, ento buscado tambm o gnero e o link da imagem do perfil do usurio como implementado nas linhas 12 at 14. A linha 15 fica responsvel em manter o usurio que curtiu o post. O servio web disponibiliza o mtodo GetPostLikes para retornar as publicaes mais curtidas.

74

O quadro 33 demostra a estrutura do arquivo XML que retorna as publicaes mais curtidas pelos usurios do Facebook.

1 2 3 4 5 6 7 8 9 10 11 12 13

QUADRO 33 - Estrutura do XML dos posts mais curtidos. <?xml version="1.0"?> <PromotionLikes xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <ListPromotionLikes> <PromotionLike> <PostMesssage>Message do post</PostMesssage> <PostLinkPicture> http://www.facebook.com/7897893892839/posts/50450154544 </PostLinkPicture> <PostFacebookName>Web Bona Teste Page</PostFacebookName> <PostFacebookLinkPicture> https://fbcdn-profile-a.akamaihd.net/staticak/rsrc.php/v2/yo/r/UlIqmHJn-SK.gif </PostFacebookLinkPicture> <ProcessCod>0V3MV9M4-4D39-V093-8B6C-24B18FA38D12</ProcessCod> <CountLike>8</CountLike> </PromotionLike> </ListPromotionLikes> </PromotionLikes>

Retorna uma lista de posts como est especificado na linha 3. Da linha 5 at a linha 10 esto as propriedades de retorno do objeto como: a mensagem postada, o link da imagem publicada, o nome e o link da imagem do usurio que publicou o post, o cdigo do processo e a quantidade de pessoas que curtiram o post. O servio integrado monitora tambm os usurio que comentaram as publicaes efetuadas pelo servio.
QUADRO 34 - Cdigo fonte do mtodo GetFeedbackCommentsPost. private void GetFeedbackCommentsPost(string accessToken, HistoryPostVO historyPost) { var fbClient = new FacebookClient(accessToken); dynamic result = fbClient.Get(string.Format("{0}/comments", historyPost.HistoryFacebookId)); if (result.data.Count > 0) { FeedbackUserCommentJson loadFeedbackCommentsUser =

1 2 3 4 5 6 7 8

75

LoadFeedbackCommentsUser(result.ToString(), historyPost.HistoryPostId); 9 10 11 12 13 14 15 16 17 18 foreach (var UserComments in loadFeedbackCommentsUser.data) { dynamic resultUser = fbClient.Get(string.Format("/{0}?fields=gender,picture", UserComments.from.id)); UserComments.from.Gender = resultUser["gender"]; UserComments.picture = resultUser["picture"]["data"]["url"]; RecordFeedbackCommentsUsers(UserComments); } } }

O quadro 34 demostra a implementao da captura das informaes dos usurios que comentaram um determinado post. Este mtodo mantem a mesma estrutura do mtodo GetFeedbackLikePost representado no quadro 32, porem a linha 4 modificada alterando o diretrio da plataforma Facebook, onde o caminho agora comments e por padro os campos retornados dos usurios que comentaram determinado post so o id e o nome e que esses campos sero mantidos conforme descreve a linha 15.
QUADRO 35 - Estrutura do XML dos usurios que comentaram o post. <?xml version="1.0"?> <PromotionUserComments xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <ProcessCod>B64DA72E-4D39-4B2B-8B6C-24B18FA38D12</ProcessCod> <CountComments>3</CountComments> <CountCommentGenderMale>1</CountCommentGenderMale> <CountCommentGenderFemale>2</CountCommentGenderFemale> <ListUserComments> <UserComment> <FacebookUserId>1111111</FacebookUserId> <FacebookUserName>Name do usurio</FacebookUserName> <FacebookUserLinkPicture> https://fbcdn-profile-a.akamaihd.net/staticak/rsrc.php/v2/yo/r/UlIqmHJn-SK.gif </FacebookUserLinkPicture> <FacebookUserGender>Masculino</FacebookUserGender> <FacebookUserComment>Comentarios</FacebookUserComment> </UserComment> </ListUserComments> </PromotionUserComments>

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Para retornar os usurios que comentaram determinada publicao, o servio web contem o mtodo GetPostUserComments responsvel em retornar as informaes

76

dos usurios em uma lista no formato de um arquivo XML como demonstrado no quadro 35. Neste quadro est demonstrada a estrutura do arquivo XML retornando as informaes dos usurios que comentaram determinados post. O post identificado pelo cdigo de processo como descreve na linha 3. A linha 4 exibe o total de usurios que comentaram o post. As linhas 5 e 6 representam o total de usurios que comentaram o post separando-os por gneros (masculino e feminino). Da linha 8 at a 13 exibem algumas informaes dos usurios do Facebook como: id do usurio, nome, link da imagem do perfil, gnero e o comentrio realizado.

4.4 Apresentao do sistema Para melhor apresentao do trabalho e visualizao das funcionalidades do servio integrador de dados com o Facebook e o servio web, foi criada uma aplicao de teste para poder consumir estas funcionalidades descritas nos captulos anteriores. A aplicao demostrada a seguir foi implementada sobre a plataforma .Net em Windows Forms com a linguagem de programao C#. Quando uma aplicao fora da plataforma do Facebook for utilizar das ferramentas disponibilizadas pela API Graph necessrio que o usurio autentique sua conta, para que a aplicao venha integrar seus dados com a rede social. A Figura 29 representa o formulrio de login do usurio do Facebook, porm esta autenticao servir apenas para conceder a aplicao o token de acesso do usurio.

77

FIGURA 29 - Tela de login do Facebook.

Aps o usurio efetuar o login com sua senha, a aplicao ir solicitar a permisso de acesso alguns dados do usurio logado. Essas informaes variam conforme o tipo de autenticao da APP com a plataforma do Facebook. A Figura 30 representa a solicitaes de permisses de acesso a dados exclusivos do usurio. Cabe ao usurio definir se vai ou no conceder a permisso para a APP.

78

FIGURA 30 - Permisso de acesso aos dados do usurio. FONTE: Facebook (2012).

Quando concedido permisso ao usurio retornado as informaes bsicas da Fan Page como demonstra a figura 31.

FIGURA 31 - Tela principal da Fan Page.

Aps a aplicao obter o token de acesso possvel publicar mensagens e imagens em nome de uma Fan Page do perfil de usurio. Para a utilizao dos mtodos relacionados com as pginas do Facebook, necessrio ao usurio pertencente ao token de acesso criar uma pgina no Facebook. A Figura 32 representa a tela responsvel em publicar as ofertas na Fan Page do usurio logado. Neste exemplo foi adicionada uma mensagem e carregado uma imagem para a realizao da publicao.

79

FIGURA 32 - Tela de publicao de ofertas no Facebook.

A Figura 33 representa a publicao realizada com sucesso na plataforma do Facebook. A publicao foi realizada em nome da Fan Page TellMe, porm identificado que a origem da publicao aconteceu com a APP TellMe como mostra no canto direito inferior da figura.

80

FIGURA 33 - Publicao efetuada no Facebook pelo servio. FONTE: Facebook (2012).

Quando efetuadas publicaes atravs do servio integrador possvel buscar os feedbacks como a quantidade de usurios que curtiram e ou comentaram o post. Aps obter as informaes do post possvel tambm realizar algumas aes como: curtir, comentar ou atm mesmo compartilhar o post sem estar na pgina oficial do Facebook como mostra a figura 34.

81

FIGURA 34 - Tela de aes para a publicao.

4.5 Concluso Neste captulo foram demonstrados alguns cdigos fontes de mtodos das classes que so responsveis em realizar a integrao com o Facebook. Foram apresentados os cdigos fonte de mtodos do servio integrador e tambm alguns mtodos que so responsveis em retornar as informaes do Facebook via web service. Foi descrito de qual forma uma aplicao se conecta no Facebook utilizando o servio integrador, onde tambm foi realizados testes de publicao utilizando as funcionalidades do servio de integrao com o Facebook.

82

5 CONSIDERAES FINAIS

Este trabalho teve como objetivo principal criar um servio web de integrao de dados com a rede social Facebook. Na elaborao deste projeto foi necessrio realizar o estudo sobre a plataforma do Facebook, onde foi identificado que a plataforma de desenvolvimento esta apta em realizar a integraes com outras aplicaes atravs da API Graph. perceptvel que cada vez mais as pginas web esto interligas com as redes sociais, especialmente o Facebook. Tambm visvel que as redes sociais j fazem parte do marketing digital das empresas e com isso faz se necessrio com que as empresas venham saber o que cada usurio esta falando de sua marca na rede social. O trabalho vem de encontro com esta necessidade, onde possibilita uma determinada empresa retornar os feedbacks dos post realizados por elas, onde cada post pode ser considerado como uma propaganda de um determinado produto. Podendo tambm saber as informaes bsicas dos usurios que esto curtindo ou comentando suas publicaes. Para chegar a este objetivo foi necessrio pesquisar sobre como a plataforma do Facebook trabalha na divulgao de informaes de dados privados de um usurio, possibilitando at mesmo publicar informaes em nome deste usurio. Porm esta etapa foi a mais complicada de desenvolver, pois o Facebook trabalha com o protocolo OAuth 2.0 para autenticar o usurio. Isso dificultou a integrao no inicio, pois foi necessrio estudar a forma de funcionamento deste tipo de protocolo, visto que o Facebook de forma alguma disponibiliza a senha de um determinado usurio e sim concedendo um token de acesso exclusivo, que por sua vez expira em um perodo de tempo.

83

Para chegar no objetivo de integrao com Facebook foi necessrio usufruir da API Graph do Facebook, qual possui suas particularidades. Assim possvel obter os dados da rede social em uma aplicao de terceiro independente da plataforma de desenvolvimento. Uma das limitaes da integrao com o Facebook a prpria segurana de acesso aos dados, onde se tem um padro especifico de captura de informaes, contudo possibilitando o desenvolvimento do servio integrador. Sugere-se para trabalhos futuros a criao de novas funcionalidades como: realizar publicaes em uma lista de determinados amigos do usurio, permitir localizar os usurios que curtiram a pgina de uma empresa, validar as pginas de um perfil, entre outras. interessante que nos trabalhos futuros venham utilizar deste para o marketing digital, pelo fato das empresas estarem cada vez mais conectadas aos usurios desta fascinante rede social chamada Facebook.

84

REFERNCIAS BIBLIOGRFICAS

ALTERMANN, Dennis. Qual a diferena entre redes sociais e mdias sociais? Disponvel em <http://pt.wikipedia.org/wiki/Rede_social>. Acessado em 15 de maro de 2012. BASHA, S. Jeelani; CABLE, Scott; GALBRAITH, Ben; HENDRICKS, Mack; IRANI, Romin; MILBERY, James; MODI, Tarak; TOST, Andre; TOUSSAINT, Alex. Professional java web services. Birmingham: Wrox Press, 2002. BLOGGER. O que um blog? Disponvel <http://www.blogger.com/tour_start.g>. Acessado em 15 de maro de 2012. BOOCH, Grady. UML: guia do usurio. 2.ed. Rio de Janeiro: Campus, 2012. CASTRO, M. Propaganda boca a boca. Disponvel em <http://www.jornaldosite.com.br/arquivo/anteriores/marcastro/marketing11.htm>. Acessado em 13 de outubro de 2011. DCIO, Otvio C. Guia de consulta rpida: XML. So Paulo: Novatec, 2000. FACEBOOK. Facebook Developers. Disponvel em http://developers.facebook.com/docs/>. Acessado em 20 de maro de 2012. < em

FELIX, Jader. Rede Social ou Mdia Social? Quem quem? Disponvel em <http://jaderfelix.wordpress.com/2010/05/11/rede-social-ou-midia-social-quem-equem/>. Acessado em 10 de maro de 2012. GOOGLE. Viso rpida do Google+. Disponvel em <https://www.google.com/intl/pt-BR/+/learnmore/index.html#circles>. Acessado em 15 de maro de 2012. GREWE, Lynne. OpenSocial Network Programming. Indianapolis: Wrox, 2009. HENRIK, R. Redes Sociais, um conceito mais antigo do que voc pode imaginar! Disponvel em <http://www.digitalmarkketing.com/2010/08/12/redes-sociais-umconceito-mais-antigo-do-que-voce-pode-imaginar/>. Acessado em 16 de maro de 2012. HUENIVERSE. OAuth 2.0. Disponvel em < http://hueniverse.com/2010/09/oauth-20-without-signatures-is-bad-for-the-web/>. Acessado em 01 de maio de 2012.

85

KIRKPATRICK, David. Facebooks plan to hook up the world. Disponvel em < http://money.cnn.com/2007/05/24/technology/facebook.fortune/>. Acessado em 10 de abril de 2012. LAHAV, E. Hammer. The OAuth 2.0 Authorization Protocol draft-ietf-oauth-v212. Disponvel em <http://tools.ietf.org/pdf/draft-ietf-oauth-v2-12.pdf>. Acessado em 10 de maro de 2012.
LEARN PHP ONLINE. Facebook Graph API Connect with PHP and Jquery.

Disponvel em <http://www.learnphponline.net/facebook-graph-api-connect-with-phpand-jquery/>. Acessado em 15 de maio de 2012. LINKEDIN. Sobre ns. Disponvel Acessado em 15 de maro de 2012. em <http://br.press.linkedin.com/about>.

MAFRA, Diogo Edegar. Como funciona autenticao. Disponvel em < http://www.diogomafra.com.br/2010/09/como-funciona-autenticacao-oauth.html>. Acessado em 27 de abril de 2012. MEDEIROS, E. Desenvolvendo software com UML 2.0: definitivo. Pearson Education: Makron Books, 2004. So Paulo:

ORKUT. Sobre o Orkut. Disponvel em <http://support.google.com/orkut/bin/answer.py?hl=ptBR&answer=163871&topic=1687712&ctx=topic>. Acessado em 17 de maro de 2012. PENTEADO, J. R. A tcnica da comunicao humana. 9 ed. So Paulo: Pioneira, 1986. RAMALHO, Jos Antnio Alves. Mdias sociais na prtica. So Paulo: Elsevier, 2010. RECUERO, R. Redes sociais na internet. Porto Alegre: Sulina, 2010. TELLES, A. A Revoluo das Mdias Sociais: Cases, Conceitos, Dicas e Ferramentas. So Paulo: M.Books do Brasil Editora Ltda, 2010. SOCIALBAKERS. Facebook Brand Statistics in Brazil. Disponvel em < http://www.socialbakers.com/facebook-pages/brands/brazil/>. Acessado em 04 de abril de 2012. TOOLS, Luiz. Compartilhando meus estudos. Disponvel em <

http://www.luiztools.com/post/OAuth-Compartilhando-meus-estudos.aspx>. Acessado

86

em 14 de maio de 2012. TORRES, C. Redes sociais: o que realmente muda para as empresas? Disponvel em <http://www.pontomarketing.com/midias-sociais/redes-sociais-o-que-realmentemuda-para-as-empresas/>. Acessado em 10 de outubro de 2011. TWITTER. Sobre o Twitter. Disponvel em <https://twitter.com/about>. Acessado em 14 de maro de 2012. WAZLAWICK, Raul Sidnei. Anlise e projeto de sistemas de informao orientados a objetos. 2. Ed. Rio de Janeiro: Elsevier, Editora Campus, 2011. WIKIPEDIA. Rede Social. Disponvel em http://pt.wikipedia.org/wiki/Rede_social>. Acessado em 10 de maro de 2012. YOUTUBE. Sobre o YouTube. Disponvel <http://www.youtube.com/t/about_youtube>. Acessado em 17 de maro de 2012. < em

Você também pode gostar