Buscando Tweets com a API do Twitter

lisandramelo

Lisandra Melo

Posted on September 3, 2021

Buscando Tweets com a API do Twitter

Criando sua Conta de Desenvolvedor

A API do Twitter é uma ferramenta fornecida pelo próprio Twitter e permite o acesso em tempo real ao que está sendo produzido (tuitado) pelos usuários da rede social. Para acessá-la será necessário, primeiro, que você possua uma conta de desenvolvedor, para obtê-la é preciso que você realize uma solicitação clique aqui para seguir para página de solicitação.

Depois de conseguir seu acesso ao Portal de Desenvolvedor, você será apresentado a um painel como o abaixo.
*Dashboard* Do Portal de Desenvolvedor

Agora para ser capaz de se conectar a um endpoint da API, você precisará criar um projeto e um App. Para isso, clique em Create New Project e depois preencha as informações necessárias para a criação do projeto e de um App dentro do projeto. Após preencher todo o formulário você será apresentado a uma tela com as chaves de autenticação da sua aplicação, essas são necessárias durante a conexão com a API.

Tela de Chaves do App Criado

Agora você tem todo o necessário para se conectar à API!

Conexão com a API

Para realizar a conexão com a API é possível utilizar diversas tecnologias distintas, mas usaremos Python juntamente com algumas de suas bibliotecas.

Primeiramente, sobre as bibliotecas que serão utilizadas, serão três: Python Requests, json e Python Decouple. A Python Requests será responsável por realizar as solicitações HTTP, a json ajudará a manipular as respostas obtidas para o formato .json e a biblioteca Python Decouple será usada para separar a autenticação do que está escrito no código.

Então, primeiramente, importaremos as bibliotecas necessárias.

from decouple import config
import requests
import json
Enter fullscreen mode Exit fullscreen mode

Depois disso, é necessário que importemos o valor de autenticação para o código, para isso, criaremos, no mesmo diretório do nosso arquivo, um arquivo com o nome .env e dentro dele adicionaremos a seguinte informação.

BEARERTOKEN=ValorDoSeuBearerToken
Enter fullscreen mode Exit fullscreen mode

Após a criação do arquivo, já é possível utilizar o valor de autenticação do Bearer Token sem precisar colocar uma informação sigilosa junto ao código. Para isso, adicionaremos a seguinte linha de código no nosso arquivo .py.

bearer_token = config('BEARERTOKEN')
Enter fullscreen mode Exit fullscreen mode

Dentro da variável bearer_token agora estará o valor de seu Bearer Token.

Agora, criaremos uma função que adiciona a autenticação no cabeçalho da solicitação HTTP que será realizada.

def set_autenticacao(objeto_para_auth):
    """
    Método que acrescenta, no objeto da busca, um cabeçalho correspondente a autenticação do request.
    """

    objeto_para_auth.headers["Authorization"] = f"Bearer {bearer_token}"
    return objeto_para_auth
Enter fullscreen mode Exit fullscreen mode

Após isso, já somos capazes de realizar o processo de solicitação para a API. Então, determinaremos os nossos parâmetros de busca e o endpoint da API que será utilizado.

search_url = "https://api.twitter.com/2/tweets/search/recent"
str_busca = f'to:{perfil} {chave_busca} lang:{lingua}'
query_params = {'query': str_aux,'tweet.fields': 'attachments,author_id,created_at,lang,public_metrics,source','max_results':limite_tweets}
Enter fullscreen mode Exit fullscreen mode

No código superior, a variável search_url recebe o endpoint que será usado (você pode ler um pouco mais sobre os endpoints disponíveis clicando aqui). Ademais, a variável str_busca recebe a string de busca que será aplicada, no caso do exemplo a busca será por tweets enviados para um perfil, contendo uma chave de busca e escritos em uma língua específica, outros filtros de busca podem ser vistos aqui. Já o query-params, recebe a string de busca, os campos que estarão presentes nas respostas (veja mais opções clicando aqui) e o número de tweets retornados na busca.

Depois das definições, podemos realizar o request, para isso, usaremos os comandos abaixo.

"""
Abaixo realizamos o request que usa os parâmetros
search url para defnir o endpoint,
auth para determinar o nosso bearer token como autenticação baseado na função anterior
params que usa a string de parâmetros
"""
response = requests.get(search_url, auth=set_autenticacao, params=query_params)

# Testa se a resposta foi bem sucedida
if response.status_code != 200:
    raise Exception(response.status_code, response.text)

# Converte a resposta para json
r = response.json()

# Imprime a resposta
print(json.dumps(r, indent=4, sort_keys=True))
Enter fullscreen mode Exit fullscreen mode

Agora você pode ver seu os tweets obtidos baseados na sua busca!

O programa desenvolvido nesse tutorial está disponível no meu repositório do gitlab.

💖 💪 🙅 🚩
lisandramelo
Lisandra Melo

Posted on September 3, 2021

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related

Searching Tweets Using Twitter API
python Searching Tweets Using Twitter API

September 3, 2021

Buscando Tweets com a API do Twitter
python Buscando Tweets com a API do Twitter

September 3, 2021