17
Buscando Tweets com a API do Twitter
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.
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.
Agora você tem todo o necessário para se conectar à 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
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
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')
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
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}
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))
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.
17