Lisandra Melo
Posted on September 3, 2021
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.
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!
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
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.
Posted on September 3, 2021
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.