Contagem de Tweets com Python
Tags: python, http, twitter, api
Published: 2021-09-15 22:51:37

A API do Twitter é uma ferramenta (do próprio Twitter) que permite ao usuário ter acesso aos tweets produzidos em tempo real, esses tweets podem ser filtrados e analisados conforme o objetivo da pessoa que está utilizando a ferramenta. Neste artigo falaremos sobre contagem de tweets utilizando a API e a linguagem de programação Python.

##Conta de Desenvolvedor

Mas antes de utilizar a API, é preciso checar se: 1. Você possui uma conta no Twitter; 2. Você possui perfil de desenvolvedor. Para ter esse perfil é necessário solicitar ao Twitter, solicite [aqui](https://developer.twitter.com/en/apply-for-access) caso não o tenha.

Após ter acesso ao seu perfil de desenvolvedor, um painel como este será apresentado:

![Painel inicial do perfil de desenvolvedor.](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mawrvwmds2dc7jofssjz.png)

Para utilizar a API é necessário criar um projeto e uma aplicação vinculada ao projeto. Após a criação do projeto, você terá suas chaves de autenticação. E uma tela como esta mostrará tais chaves: 

![Painel com chaves de autenticação de um projeto.](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/00bvskj01w8rhzi64pde.png)

Agora, guarde suas chaves de autenticação e vamos utilizar a API!

##Conexão com a API

Como dito no título deste artigo, utilizaremos Python. Caso não possua Python instalado em sua máquina, existem duas opções comuns para utilizá-lo: 1. Baixar o Python no [site oficial](https://www.python.org/downloads/) e instalar na sua máquina; 2. Caso não queira instalar o Python, também é possível utilizá-lo via [Google Colab](https://colab.research.google.com/), basta ter uma conta Google para isso. 

Certas bibliotecas precisam ser importadas via Python, são elas:

```py
 import requests # módulo que realiza requisições HTTP/HTTPS
 import json # módulo para manuseio de objetos json
 import datetime # módulo para manuseio de datas e horas
```

Na ordem que foi mostrado: Requests é um módulo que fazer requisições HTTP/HTTPS; Json é um módulo para manuseio de objetos no formato JSON; Datetime é um módulo para manuseio de datas e horas.

Agora, precisamos utilizar a chave de autenticação chamada de Bearer Token:

```py
 bearer_token = "XXXXXXXXXXXXXXXXXXXXXXXXXX"
```
Para utilizá-la na requisição é necessário criar um cabeçalho com a chave. Neste exemplo, implementamos uma função que cria o cabeçalho: 

```py
 # gera o cabeçalho para a requisição com o bearer token
 def bearer_oauth(r):
    r.headers["Authorization"] = f"Bearer {bearer_token}"
    return r
```

Em seguida definir palavras-chave e a query para a requisição. Vale ressaltar que para contagem de tweets, utilizamos o endpoint da API chamado de Tweet Counts, para saber mais sobre ele acesse [este link](https://developer.twitter.com/en/docs/twitter-api/tweets/counts/introduction). 

O endpoint Tweet Counts é utilizado dado esta URL:

```py
    url = "https://api.twitter.com/2/tweets/counts/recent"
```
Agora, um exemplo de palavras chave e query (consulta) para requisição:
 
```py 
 # palavras-chave
 keywords = "vacina covid-19"
 # query 
 query_params = {
    'query': keywords
 }
```
Finalmente, faremos a requisição à API, e para isso implementamos uma função que realiza a requisição e retorna a resposta em formato JSON:

```py
 # conecta com o endpoint e retorna a reposta em formato JSON 
 def connect_to_endpoint(url, params):
      response = requests.get(url, auth=bearer_oauth, params=params)
      print("Status da requisição: ",response.status_code) 

      # caso ocorra algum erro, uma exceção é lançada
      if response.status_code != 200: 
        raise Exception(response.status_code, response.text)

      # retorna o resultado em formato JSON
      return response.json() 
```
Agora, basta imprimir a resposta da requisição:

```py
 result = connect_to_endpoint(url, query_params)
 print(json.dumps(result, indent=4, sort_keys=True))
```
Com esses resultados temos a contagem de tweets por palavras-chave. Esses resultados podem ser analisados, até mesmo responder esta pergunta: quantos tweets foram produzidos, nas últimas 24 horas, sobre o Covid-19?

##Conclusão

Espero que tenha gostado deste artigo, a API do Twitter permite ao usuário fazer muitas coisas interessantes como, por exemplo, análise dos dados presentes nos tweets acessados. Este artigo foi feito com base [neste projeto](https://github.com/breudes/contagem-de-tweets) que eu implementei para uma disciplina da faculdade.

É possível utilizar essa API por meio de diferentes tecnologias, Python foi apenas a tecnologia que achei mais confortável para isso.

Recomendo [esse artigo](https://dev.to/lisandramelo/buscando-tweets-com-a-api-do-twitter-3g1b), também relacionado a API do Twitter. Até a próxima!