Olá, pessoal. Estou com o mesmo erro do colega Luca, que publicou há 5 dias. Inclusive, ao realizar um print da variável response, recebo um status 500, o que me leva a crer que há um problema onde estão os dados. Alguma ajuda?
Olá, pessoal. Estou com o mesmo erro do colega Luca, que publicou há 5 dias. Inclusive, ao realizar um print da variável response, recebo um status 500, o que me leva a crer que há um problema onde estão os dados. Alguma ajuda?
Olá Murillo, tudo bem? Espero que sim.
Desculpe pela demora na resposta.
Analisando a parte do código que você disponibilizou, parece que está tudo certo.
Para que eu possa te ajudar melhor, poderia me enviar o código completo? Assim, terei uma visão mais abrangente do problema e poderei oferecer uma solução mais precisa.
Também respondi ao Luca sobre a formatação do end_time
. Se você quiser, pode conferir a sugestão que deixei para o Luca no link do tópico e ver se ela também pode ajudar no seu caso.
Parabéns pela ideia de utilizar o print
na resposta para tentar identificar o erro. Uma sugestão adicional é adicionar um print
da URL para testá-la fora do código e verificar se os parâmetros estão corretos.
Aguardo o envio do código completo e fico à disposição para esclarecer qualquer dúvida.
Oi, Igor! Tudo e você? Obrigado pelo retorno, segue print.
from datetime import datetime, timedelta
import requests
import json
import os
TIMESTAMP_FORMAT = "%Y-%m-%d%H:%M:%S.00Z" #formatando data aceita pela API
end_time = datetime.now().strftime(TIMESTAMP_FORMAT)
start_time = (datetime.now() + timedelta(-1)).date().strftime(TIMESTAMP_FORMAT)
query = "data science" #palavra de interesse que queremos buscar nos tweets
#Campos que desejamos da API
tweet_fields = "tweet.fields=author_id,conversation_id,created_at,id,in_reply_to_user_id,public_metrics,lang,text"
user_fields = "expansions=author_id&user.fields=id,name,username,created_at"
#URL
url_raw = f"https://labdados.com/2/tweets/search/recent?query={query}&{tweet_fields}&{user_fields}&start_time={start_time}&end_time={end_time}"
#Acessando token na variável de ambiente
#Primeiro, abro um novo terminal no VSCOde e, digito: export BEARER_TOKEN={token}
bearer_token = os.environ.get("BEARER_TOKEN")
headers ={"Authorization": "Bearer {}".format(bearer_token)}
response = requests.request("GET", url_raw, headers=headers)
#Acessando o conteúdo
json_response = response.json()
print(json.dumps(json_response, indent=4, sort_keys=True))
#Iterando para acessar mais páginas da requisição
while "next_token" in json_response.get("meta", {}):
next_token = json_response['meta']['next_token']
url = f"{url_raw}&next_token={next_token}"
response = requests.request("GET", url, headers=headers)
json_response = response.json()
print(json.dumps(json_response, indent=4, sort_keys=True))
Olá Murillo.
Notei que no timestamp está faltando a letra T separando a data da hora.
TIMESTAMP_FORMAT = "%Y-%m-%d%H:%M:%S.00Z" #formatando data aceita pela API
Poderia modificar para esse código:
TIMESTAMP_FORMAT = "%Y-%m-%dT%H:%M:%S.00Z"
Aguardo para saber se a alteração funcionou e fico à disposição para esclarecer qualquer dúvida.
Oi, Igor!
Obrigado pela resolução.