quarta-feira, 10 de dezembro de 2014

DATASIFT

https://www.youtube.com/watch?v=QOnOyJaxA6g

A plataforma de dados sociais mais poderosa do mundo.
É possível pegar dados de até 2 anos.

https://www.youtube.com/watch?v=pdfzcN31iyM

No inicio ganhamos um crédito de $10,00 porém para fazer buscar passadas é mais caro e o crédito não é suficiente. Portanto, só posso testá-lo para o presente.

No passado voce pode fazer buscas em períodos de 32 dias.

https://www.youtube.com/watch?v=JaT9jUeHnsY

pedi autorização para usar dados do twitter, agora é esperar para testarmos
Na pesquisa sobre qual ferramenta usar para capturar dados, sem ser a API do twitter, me deparei com esse site: http://www.researchgate.net/post/How_can_we_get_data_from_Twitter_for_discourse_analysis .
Nele uma pessoa faz essa mesma pergunta e várias respostas deram dicas sobre ferramentas a serem usadas. Resolvi então verificar tais ferramentas e ver se descobria algo útil.


1) NodeXL
É um plug-in para Excel que permite extrair direto os dados do twitter, uma ótima alternativa para quem não tem conhecimentos de programação, pois é simples de usar. Porém, o objetivo dessa ferramenta é analisar a "rede" (networking), ou seja, quais usuários se comunicam sobre um determinado assunto e gera uns grafos bem legais para análises. Mas não se encaixa no nosso objetivo do projeto. Mesmo assim, pelo que estudei, não pode escolher a data para fazer a pesquisa.

2)ScraperWiki

O ScraperWiki era uma ferramenta que fazia a "ponte" entre a API e usuários que necessitavam dos dados para alguma pesquisa porém não tem conhecimento de programação (como o Arthur, por exemplo). Porém, o twitter retirou a permissão da API para o site, proibindo continuar com tal serviço. 
O site então, em seu blog, fez uma explicação do por quê da suspensão e achei legal para entendermos também por que não podemos pegar dados antigos via API.

A explicação esta nesse site:
https://blog.scraperwiki.com/2014/08/the-story-of-getting-twitter-data-and-its-missing-middle/

em resumo:
Ele diz que existem quatro formas amplas de recolher esses dados.
1)Pela API, onde desenvolvedores podem pegar os dados para o uso próprio. O limite de dados é até generoso perto de outras redes sociais ( rate limits - quantidade de tweets que pode recolher de tanto em tanto tempo). Porém, você deve seguir as regras que eles impõe, ou twitter corta sua aplicação.
E, por outro lado, é injusto com aqueles que não sabem programar.

 2) Companhias de softwares desenvolvem aplicações que usam a API- firehouse.
Eles tem uma aprovação do twitter para poder usar esses dados e fornecer para outros. Essas aplicações não podem permitir analises e codificações pelos seus usuários.

3)Bulk tweet data ( dados dos tweets em massa), pode ser conseguido no Datasift e Gnip, que só incluem tweets. 
As duas companhias cobram pelos seus produtos. O custo é em torno de 10 cents/1000 tweets. O que fica inviável quando realmente a quantidade de dados é enorme (big data).

4)Programas especiais. Existem alguns institutos que tem acesso a todos os dados porém não podem disponibilizá-los.

Por que o twitter restringe o uso de dados?
A resposta óbvia seria para fins comerciais mas esse não é o caso. As razões seguem abaixo:

- Proteger privacidade e acabar com uso maliciosos
Quando usamos o método do firehouse, por exemplo, Datasift, você é obrigado a deletar sua cópia de um tweet assim que o usuário deleta ele da sua conta. Regra similar se aplica quando o usuário torna sua conta privada ou deleta a conta. Isso é impressionante, fantástico para a privacidade do usuário.
Logo, parte do motivo do twitter ser tão cuidadoso vetando usuários é para segurar que a privacidade está segura.
Twitter também previne usuários que podem causar "danos" a seus usuários. O site não explica muito mais cita como exemplo governos que quando tem grande volume de dados em suas mãos pode identificar contas anônimas . Isso provavelmente surgiu com a "revolução do twitter" como a do Iran em 2009. 

- Eles são uma companhia de mídia agora. 
Twitter mudou desde seu ínicio, hoje em dia são uma companhia de mídia e não só um veículo de mensagens.
Isso implica que o foco está em uma boa experiência para o usuário e propaganda, e não achar novos meios para o mercado de dados.


Assim pelo que podemos ver, uma única alternativa de conseguir esses dados seria através das firehouses
proximo post:
=> DATASIFT 

outra opção é baixar volumes de tweets existentes e ver se conseguimos extrair algo útil desses dados
https://archive.org/details/twitterstream 
http://archive.org/search.php?query=collection%3Atwitterstream&sort=-publicdate
será preciso muito espaço no disco pois o volume é imenso (testar no lab?).

http://allthingsd.com/20101110/twitter-firehose-too-intense-take-a-sip-from-the-garden-hose-or-sample-the-spritzer/

http://tweetreach.com/reports/12551375

terça-feira, 9 de dezembro de 2014

voltando à estaca zero

Como foi visto na postagem anterior, não é possível a partir da API do twitter (a ferramenta que eu utilizo para coletar os tweets) recolher dados mais antigos que, mais ou menos, 1 semana.
Porém, o twitter liberou recentemente todos os tweets da história para as pesquisar no browser.
Nosso objetivo é conseguir uma maneira de recolher os tweets sem usar a API do twitter, ou seja, voltar ao início da pesquisa. Como podemos recolher esses dados?

http://www.researchgate.net/post/How_can_we_get_data_from_Twitter_for_discourse_analysis

sexta-feira, 5 de dezembro de 2014

tweets antigos

https://blog.twitter.com/2014/building-a-complete-tweet-index

Notably, these search features are currently limited to the official Twitter apps. I wasn’t able to find old tweets in search using the Twitter API in Twitterrific and Tweetbot. Twitter writes:
For now, complete results from the full index will appear in the “All” tab of search results on the Twitter web client and Twitter for iOS & Twitter for Android apps. Over time, you’ll see more Tweets from this index appearing in the “Top” tab of search results and in new product experiences powered by this index.

quinta-feira, 4 de dezembro de 2014

NoSQL - PRÓS vs CONTRAS

VANTAGENS:

1)Alta Escalabilidade
Sua escalabilidade elástica é o diferencial que o faz vantajoso para grande quantidade de dados (Big Data). No modelo relacional é preciso adicionar servidores maiores e mais poderosos a medida que a base de dados cresce, logo, quando se trata de uma enorme quantidade de dados, isso se torna inviável. Já em uma base de dados não relacional, há disstribuição da base de dados em diversos hosts com o objetivo de tornar eficiente o gerenciamento.

2)Flexibilidade
Banco de dados NoSQL são considerados menos restritivos que os relacionais, geralmente porque não está amarrado em um específico modelo de dados. Aplicações podem armazenar os dados em qualquer estrutura virtual que desejarem ou formatos que forem necessários.

3)"Amigo" do administrador
menos complexa e mais simples de implantar que os SQL, Isso porque eles são planejados da base para necessitar menos gerenciamento, com reparação automática, distribuição de dados e modelos mais simples.

4)Bom custo-benefício e open-source
Os servidores utilizados em noSQL são tipicamente mais baratos, contrário aos geralmente caros servidores e sistemas de armazenamento requeridos pelos bancos relacionais. Além disso, noSQL é totalmente código aberto (open source), implicando em alta confiança na segurança e rapidez de implementação.

5) As nuvens são o limite
Sistemas noSQL são amarrados com os sistemas de nuvens. Isso permite que o administrador foque mais no software e derivados do que se preocupar com o hardware que está sendo usado.
Aproveitamento da escalabilidade elástica dos sistemas de nuvens.


DESVANTAGENS:

Uma das principais razões pela qual o NoSQL nunca substituirá o SQL é porque nunca foi feito para ser. Os modelos NoSQL tem um foco bem central: eles são projetados basicamente para armazenamento de dados e oferece muita pouca funcionalidade além disso.
Quando as transações entram em jogo, o SQL ainda é mais vantajoso.

1)"Estandartização" e Open Source
O open source do NoSQL pode ser considerado sua maior vantagem e sua maior fraqueza.

2)Performance e escalabilidade > consistência
Devido a forma em que é armazenada, a consistência dos dados nos bancos de dados NoSQL pode acabar sendo uma preocupação. Esse tipo de banco prioriza sua performance e escalabilidade, então a consistência acaba sendo não considerada. Logo, dependendo do seu objetivo de uso, isso pode ser uma péssima característica ou forte qualidade. Por exemplo, para tratar de gerenciamento de registros financeiros, esse característica é totalmente negativa.

3)Falta de maturidade
Apesar de não ser a maior novidade do momento (a base da tecnologia já existe há mais de 10 anos)
, a aceitação total do NoSQL ainda não é generalizada. Comparada aos bancos tradicionais relacionais, sua tecnologia ainda é um tanto imatura, isso é refletido ainda em sua falta de desenvolvedores e administradores com os certos conhecimentos e habilidades no assunto.
Ser "amigo" dos administradores e desenvolvedores não ajuda em nada se nenhum dos dois tem as ferramentas necessárias ou conhecimentos para lidar com ele.

Além disso, os bancos SQL estão muito estabilizados no mundo empresarial e, assim, desfruta de maior funcionalidade, aceitação e uma boa quantidade de profissionais que realmente o entendem e sabem gerenciá-los.

conclusão:
Bancos de dados NoSQL vem ganhando uma grande popularidade nos últimos anos, com o crescimento de big data e a ainda mais crescente perseverança das nuvens. Enquanto a tecnologia é ótima para lidar com as dificuldades envolvendo dados desestruturados, é por outro lado limitado em outras áreas chaves.

O administrador deve então considerar cuidadosamente o tipo de banco de dados que melhor satisfaz suas necessidades antes de se comprometer com uma implementação ou outra. A escolha errada pode ter consequências desastrosas

fonte:
http://greendatacenterconference.com/blog/the-five-key-advantages-and-disadvantages-of-nosql/

sexta-feira, 14 de novembro de 2014

NoSQL

NoSQL (Not Only SQL) são diferentes sistemas de armazenamento que vieram para suprir necessidades em demandas onde os bancos de dados tradicionais (relacionais) são ineficazes. 

Essa nova geração de Banco de Dados agrega algumas características como sendo não-relacional, distribuído, código aberto e escalado horizontalmente.

O NoSQL surgiu da necessidade de uma performance superior e de uma alta escalabilidade. Os atuais bancos de dados relacionais são muito restritos a isso, sendo necessária a distribuição vertical de servidores, ou seja, quanto mais dados, mais memória e mais disco um servidor precisa. O NoSQL tem uma grande facilidade na distribuição horizontal, ou seja, mais dados, mais servidores, não necessariamente de alta performance. Um grande utilizador desse conceito é o Google, que usa computadores de pequeno e médio porte para a distribuição dos dados; essa forma
de utilização é muito mais eficiente e econômica. Além disso, os bancos de dados NoSQL são muito tolerantes a erros.
No caso dos bancos NoSQL, toda a a informação necessária estará agrupada no mesmo registro, ou seja, em vez de você ter o relacionamento entre várias tabelas para formar uma informação, ela estará em sua totalidade no mesmo registro.
A intenção original foram os bancos de dados na escala de webs. Esse movimento começou em 2009 e cresceu rapidamente desde então. É o modelo de banco de dados utilizado por sites como twitter, facebook e google.
Mas não confuda, não quer substituir SQL.
Cinco necessidades do mercado que não são atendidas perfeitamente pelos produtos de banco de dados e fornecedores disponíveis no mercado, são eles:
-escalabilidade
-performance
-consistência eventual ou relaxada
-agilidade
-complexidade
Principais tipos disponíveis:
1)Orientado a documentos
modelo de dados é uma coleção de documentos que contém um par chave, valor. 
2)Armazenamento por chave-valor
Modelo de dados é uma coleção global de pares de chave-valor. Gerencia bem o tamanho, processa uma quantidade constante de pequenas leituras e escritas
3)Clones de big table
Modelo de dados é uma família de colunas. Modelo tabular onde cada linha pode ter suas proprias colunas. Gerencia bem o tamanho, processa uma grande quantidade de carga via fluxos. Alta disponibilidade. Usada pelo google
4) Orientado a Grafos
Modelo de dados nós e relacionamentos, ambos manipulam par de chave-valor. é rapido.

domingo, 2 de novembro de 2014

tweets passados

"Clients may access a theoretical maximum of 3,200 statuses via the page and count parameters for theuser_timeline REST API methods. Other timeline methods have a theoretical maximum of 800 statuses. Requests for more than the limit will result in a reply with a status code of 200 and an empty result in the format requested. Twitter still maintains a database of all the tweets sent by a user. However, to ensure performance of the site, this artificial limit is temporarily in place."

solução que deram no google: radian6- produto pago


email:
"I'm a 20 years old student from Rio de Janeiro, Brazil and I'm doing a research with my university (PUC-Rio) about digital democracy, in other words, we collect the data from twitter about some political events in Brazil. At the moment, I need to get information about #marcocivil bewteen 2009 and 2013, and twitter search api does not allow it."

objetivos da semana

-terminar de ler as teses
-contatar o twitter para conseguir dados antigos (#marcocivil)
-começar a aprender a fazer a pagina
-analise de sentimentos
-como distinguir midia horizontal e midia vertical

quarta-feira, 29 de outubro de 2014

Novas informações de um tweet

Com finalidade de ajudar na distinção de tweets de midia e tweets de usuários comuns, agora é possivel coletar as seguintes informações:
-quantidade de seguidores do usuário que tweetou
-se é ou não verificado pelo twitter ( pessoas famosas e jornais reconhecidos possuem esse atributo)
-quantidade de pessoas que favoritaram o tweet

terça-feira, 28 de outubro de 2014

Machine Learning

Passado o desafio de coletar dados e já estando com o banco repleto de dados, passamos para a próxima etapa do projeto, hora de trabalhar com esses dados, para retirarmos deles as informações que necessitamos.

O que é MACHINE LEARNING?

" A aprendizagem automática ou aprendizado de máquina é um sub-campo da inteligência artificial dedicado ao desenvolvimento de algoritmos e técnicas que permitam ao computador aprender, isto é, que permitam ao computador aperfeiçoar seu desempenho em alguma tarefa. Enquanto que na inteligência artificial existem dois tipos de raciocínio - o indutivo, que extrai regras e padrões de grandes conjuntos de dados, e o dedutivo - o aprendizado de máquina só se preocupa com o indutivo.
Algumas partes da aprendizagem automática estão intimamente ligadas à mineração de dados e estatística. Sua pesquisa foca nas propriedades dos métodos estatísticos, assim como sua complexidade computacional. Sua aplicação prática inclui o processamento de linguagem natural, motores de busca, diagnósticos médicos, bioinformática, reconhecimento de fala, reconhecimento de escrita, visão computacional e locomoção de robôs. "

A partir disso, precisamos criar uma forma de identificar os tweets, por exemplo, os que são de mídia horizontal ou vertical, os que são contra ou a favor de um determinado candidato, etc.
Relacionado a isso estão os seguintes conceitos:
- mineração de dados (data mining) 
- análise de sentimentos/ mineração de opinião:  http://www.inf.ufsc.br/~alvares/INE5644/MineracaoOpiniao.pdf

Um grande desafio já previsto é a ironia presente quando um usuário, geralmente sem ser mídia, fala sobre política. Porém, não está certo que isso irá provocar impacto no resultado, pois a quantidade de ironia em relação a tweets sem ela, é mínima.

O site sentiment140.com obtem informações recentes sobre determinada marca ou produto e forma um gráfico analisando a opinião dos usuários. Quando entramos e pesquisamos sobre determinado assunto, podemos ver que os resultados nao sao precisos se analisarmos. Principalmente os classificados como negativos pelo que olhei.

Coleta do conteúdo: saber dividir fatos de opniões.

A classificação do conteúdo se dá em 3 etapas:
-aprendizagem de máquina
-seleção de palavras
-análise sintática

http://tecnologia.terra.com.br/internet/analise-de-sentimentos-e-novo-campo-na-web,48e8887dc5aea310VgnCLD200000bbcceb0aRCRD.html
opiniões dos úsuarios.

 

segunda-feira, 20 de outubro de 2014

Tamanho BD

A tabela possui os seguintes atributos:

- id : bigserial
-username: string 50 caracteres
-data: string 20 caracteres
-texto: string 160 caracteres
retweets: inteiro 

logo, 1 tupla ocupa o espaco de 8+50+20+160+4 bytes = 242 bytes

quinta-feira, 16 de outubro de 2014

Banco de dados

Consegui transferir os tweets para o banco de dados, usando postgresql.
Se coletar a cada dia é possível cobrir todos os tweets da #eleicoes2014.
Coloquei como chave primária o usuário e o texto do tweet, assim não pode haver repetição de um mesmo tweet de um mesmo usuário, pois não será uma informação relevante para o Arthur.

Até o momento estamos com 23043 tweets coletados. Já é possivel começar a realizar querys

quinta-feira, 9 de outubro de 2014

Página para acesso do Arthur

O próximo passo é transferir os arquivos.txt para o banco de dados, para isso preciso consultar a ferramenta que irei usar. Enquanto isso, estudarei php para começar a criar a página onde o Arthur poderá consultar os dados.


quarta-feira, 1 de outubro de 2014

Coletando tweets

Consegui coletar um número sufuciente para pegar todos tweets de um dia com #eleicoes2014 sem rate limit exceed

mudança no código:

try:
print('%d' %(i))
#Write a row to the csv file/ I use encode utf-8
csvWriter.writerow( [tweet.user.screen_name] + [tweet.created_at] + [tweet.text.encode('utf-8')] )
i=i+1

except tweepy.TweepError:
print 'DORMINDO'
time.sleep(60*15)
continue


Coletei em torno de 8mil tweets.

Filtros na pesquisa de tweets

1) result_type :
Optional. Specifies what type of search results you would prefer to receive. The current default is “mixed.” Valid values include:
  * mixed: Include both popular and real time results in the response.
  * recent: return only the most recent results in the response
  * popular: return only the most popular results in the response.

Portanto, devemos ver com o Arthur se para uma pesquisa de opniões o que vale é recent ( que geralmente vai pegar usuários quaisquer, sem "fama" e rts) ou popular ( que engloba principalmente famosos, políticos e fontes como jornais)

2) until / since : permite limitarmos a pesquisa por datas.

3) Usuário: Além do nome do twitter, é possivel pegar algumas informacoes do usuario, como seu nome, a data que o twitter foi criado e sua localização se estiver ativa.

terça-feira, 30 de setembro de 2014

Tweets em um arquivo CSV

Após ter sucesso na postagem e leitura dos tweets em tempo real, precisamos de algo mais útil para seguir o projeto, pois não basta só exibir tais tweets, temos que armazená-los para jogar em um banco de dados e no futuro analisarmos. Assim, a minha idéia foi um arquivo, pois seria fácil extrair depois em qualquer linguagem que eu desejar usar.

Pesquisando sobre códigos, achei um código bem sucinto e interessante que transformava os tweets em um arquivo CSV. Bom, mas o que é um arquivo CSV?

Arquivo CSV (Comma-separeted values) possui uma primeira linha como um cabeçalho que define os campos do objeto em questão e em seguido as instâncias do objeto, com os valores campos separados por vírgula

ex: 
User, data e hora, texto do tweet
Lobatadas,2014-09-30 21:53:10,"Preso há apenas 10 meses, Delúbio já vai cumprir pena em casa.
Fosse um cidadão comum, seria assim também? #mensalão #eleicoes2014"

Colocando em prática o código abaixo, infelizmente o programa não funcionava. Estava usando a última versão d tweepy disponivel na conta do GitHub. O erro que estava ocorrendo tinha poucas referências na internet e nenhuma com solução. Concluí que vinha de alguma classe dentro do código do tweepy. Assim, entrei no github e mandei email para alguns dos colaboradores do código (open source) e obtive uma resposta logo em seguida. 

" The latest Tweepy code from the git repostiroy has some bugs. I'd recommend using version 2.3.0 for now.

Good luck with your project! "


Tinha testado algumas outras versões mas que continuavam com um mesmo erro ou algum erro diferente.
Então, baixei a versão 2.3 e o código começou a funcionar, gerando alguns conflitos.
por exemplo: quando o tweet tem uma geolocalização, não é possivel capturá-lo e está dando um erro de "rate limit exceed" que precisa ser consertado.


Código usado como exemplo:
#!/usr/bin/python
import tweepy
import csv #Import csv
auth = tweepy.auth.OAuthHandler('XXXXXX', 'XXXXXXX')
auth.set_access_token('XXX-XXX', 'XXX')

api = tweepy.API(auth)
# Open/Create a file to append data
csvFile = open('result.csv', 'a')
#Use csv Writer
csvWriter = csv.writer(csvFile)

for tweet in tweepy.Cursor(api.search, 
                    q="google", 
                    since="2014-02-14", 
                    until="2014-02-15", 
                    lang="en").items():
    #Write a row to the csv file/ I use encode utf-8
    csvWriter.writerow([tweet.created_at, tweet.text.encode('utf-8')])
    print tweet.created_at, tweet.text
csvFile.close()

quinta-feira, 25 de setembro de 2014

TWEEPY

Um jeito fácil de usar biblioteca python para acessar twitter API.

Documentação:
https://media.readthedocs.org/pdf/tweepy/latest/tweepy.pdf

Código para escrever no meu twitter via tweepy:

import tweepy

# == OAuth Authentication ==
#
# This mode of authentication is the new preferred way
# of authenticating with Twitter.

# The consumer keys can be found on your application's Details
# page located at https://dev.twitter.com/apps (under "OAuth settings")
consumer_key="ITAeiVaqrS21zmYTmmHXaQ3h1"
consumer_secret="Hay3hh3uCOcJ1nk96zPKffgwIMZnHRE18afdlzUzCklH5arXNa"

# The access tokens can be found on your applications's Details
# page located at https://dev.twitter.com/apps (located 
# under "Your access token")
access_token="136375442-t59V1rbJz3hUK1t7hjJqmSYMexWh1PoiCf9dpS7b"
access_token_secret="1rVRTEhyrMnz33qhFWwVzRhzYklSLL8WB2yT1KbWgz1Ai"

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.secure = True
auth.set_access_token(access_token, access_token_secret)

api = tweepy.API(auth)

# If the authentication was successful, you should
# see the name of the account print out
print api.me().name

# If the application settings are set for "Read and Write" then
# this line should tweet out the message to your account's 
# timeline. The "Read and Write" setting is on https://dev.twitter.com/apps
api.update_status('Updating using OAuth authentication via Tweepy!')







Código para buscar tweets com 'eleicoes2014' e exibir no cmd:

import tweepy
import json

# Authentication details. To  obtain these visit dev.twitter.com
consumer_key = 'ITAeiVaqrS21zmYTmmHXaQ3h1'
consumer_secret = 'Hay3hh3uCOcJ1nk96zPKffgwIMZnHRE18afdlzUzCklH5arXNa'
access_token = '136375442-t59V1rbJz3hUK1t7hjJqmSYMexWh1PoiCf9dpS7b'
access_token_secret = '1rVRTEhyrMnz33qhFWwVzRhzYklSLL8WB2yT1KbWgz1Ai'

# This is the listener, resposible for receiving data
class StdOutListener(tweepy.StreamListener):
    def on_data(self, data):
        # Twitter returns data in JSON format - we need to decode it first
        decoded = json.loads(data)

        # Also, we convert UTF-8 to ASCII ignoring all bad characters sent by users
        print '@%s: %s' % (decoded['user']['screen_name'], decoded['text'].encode('ascii', 'ignore'))
        print ''
        return True

    def on_error(self, status):
        print status

if __name__ == '__main__':
    l = StdOutListener()
    auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
    auth.set_access_token(access_token, access_token_secret)

    print "Showing all new tweets for #eleicoes2014:"

    # There are different kinds of streams: public stream, user stream, multi-user streams
    # In this example follow #programming tag
    # For more details refer to https://dev.twitter.com/docs/streaming-apis
    stream = tweepy.Stream(auth, l)
    stream.filter(track=['eleicoes2014'])



segunda-feira, 22 de setembro de 2014

código python

from tweepy import Stream
from tweepy import OAuthHandler
from tweepy.streaming import StreamListener

ckey = 'HPZLP2PF7ktZpIBkQHCR4Bn1B'
csecret = 'KTVKfGsLqTWKSjZEkUbGOuOW0kuRi1dgKCtYSHcyJMxMuF8sgG'
atoken = '136375442-7RolevcTndEUHsinbOBWpI8bBOyzqqOmRaWDJLCi'
asecret = 'yd1biftCLMkaet9stnZDCK8kwzwlGZyYFzrF3eYeczHNN'

class listener(StreamListener):

def on_data(self, data):
print data
return True

def on_error(self, status):
print status

auth = OAuthHandler (ckey, csecret)
auth.set_access_token (atoken, asecret)
twitterStream = Stream(auth, listener())
twitterStream.filter(track = ["eleicoes2014"])


 Conseguiu ter acesso aos dados mas deu um erro no final, como se fosse um loop infinito.

domingo, 21 de setembro de 2014

OAuth Core 1.0

The OAuth protocol enables websites or applications (Consumers) to access Protected Resources from a web service (Service Provider) via an API, without requiring Users to disclose their Service Provider credentials to the Consumers. More generally, OAuth creates a freely-implementable and generic methodology for API authentication.

Esse tipo de segurança é usada na API do twitter, e para conseguir pegar as informações da API é necessária uma autenticação pelo OAuth.

Como conseguir?
OAuth authentication is the process in which Users grant access to their Protected Resources without sharing their credentials with the Consumer. OAuth uses Tokens generated by the Service Provider instead of the User’s credentials in Protected Resources requests. The process uses two Token types:
Request Token:
Used by the Consumer to ask the User to authorize access to the Protected Resources. The User-authorized Request Token is exchanged for an Access Token, MUST only be used once, and MUST NOT be used for any other purpose. It is RECOMMENDED that Request Tokens have a limited lifetime.
Access Token:
Used by the Consumer to access the Protected Resources on behalf of the User. Access Tokens MAY limit access to certain Protected Resources, and MAY have a limited lifetime. Service Providers SHOULD allow Users to revoke Access Tokens. Only the Access Token SHALL be used to access the Protect Resources.
OAuth Authentication is done in three steps:
  1. The Consumer obtains an unauthorized Request Token.
  2. The User authorizes the Request Token.
  3. The Consumer exchanges the Request Token for an Access Token.


sábado, 20 de setembro de 2014

Semana 14/09/2014 - 20/09/2014


Durante os dias da semana estava um pouco enrolada com provas e não me programei bem, trabalhando pouco no assunto, deixando para recompensar no final de semana. 
Já consegui o token para o acesso da API, agora é preciso começar a programar. Porém, a maneira mais fácil de trabalhar com essa API, pelo que pude pesquisar, é usando a linguagem Python, a qual nunca tive acesso antes. 
Então, no momento, estou instalando as ferramentas necessárias para poder começar a estudar um pouco sobre essa linguagem.
Vi que existem bastantes tutoriais de como trabalhar com a API, então acho que já vai ser uma ajuda por não dominar a linguagem usada.
Algumas fontes diziam que é possível trabalhar com outras linguagem de programação, mas seria então necessário um conhecimento muito mais aprofundado da API. No caso, a princípio, estou optando trabalhar com python.

sites pesquisados:

vídeos com tutoriais

sites do twitter para desenvolvedores, para futuras consultas:

1) exemplos de request e result

2) como fazer queries

3)Streaming API

"Before getting involved, it’s important to know that the Search API is focused on relevance and not completeness. This means that some Tweets and users may be missing from search results. If you want to match for completeness you should consider using a Streaming API instead."