Ir para conteúdo
  • 0

ACESSAR O COOKIE DE UMA API


wesleirocha84
Ir para solução Solucionado por wesleirocha84 ,

Pergunta

  • Alunos

BOa tarde, estou tentando buscar informação de uma API, já vasculhei a web mas sem sucesso de como fazer. Quem puder ajudar, agradeço.

No postman e/ou fiddler - coloco os dados e ele me retorna um "AuthSuccess" e gera um cookie
No Power Query - coloco os dados e ele me retorna um "AuthSuccess" porém precisava pegar esse cookie que ele gera que é uma espécie de "token" para eu poder acessar um outro endpoint. Obs: Se eu pego esse cookie gerado pelo postman e adiciono nesse outro endpoint, funciona, só que fica algo manual. Obs: Não tenho acesso a documentação da API.

image.png.b693020538624619f79e548887aa048f.png

 

image.png.09c3cbf3a541c1fe7d962651ec290978.png

image.png.5a37e6a217a4136656d11d631327f98c.png

Editado por wesleirocha84
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução
import requests
import pandas as pd
import json
 
# Dados de autenticação
server = 'server'
url = server + '/api/login'
usuario = 'user'
senha = 'pass'
 
# Cabeçalhos da solicitação de autenticação
headers = {'Content-Type': 'application/json'}
prefix_cookie = '.AspNetCore.CookiesA'
 
# Realiza a solicitação de autenticação
response = requests.post(url, json={'username': usuario, 'password': senha}, headers=headers)
 
# Extrai o cookie de sessão
cookie_sessao = response.cookies.get(prefix_cookie)

# Realiza a solicitação da api
reqUrl = server + 'outra api que dependia do cookie de sessão'
headersList = {"Content-Type": "application/json;charset=UTF-8",'Cookie': f'{prefix_cookie}={cookie_sessao}'}
response = requests.post(reqUrl, headers=headersList)

# Cria um DataFrame pandas a partir dos dados JSON
dados_json = response.json()
df = pd.pandas.DataFrame(data=dados_json)

obs: Não consegui que no power query me mostrasse o cookie, mas ele já vai "embutido" no código e assim consigo trazer os dados do outro endpoint.
  • Like 1
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Suave @wesleirocha84?

Realmente o tema de autenticação com cookies parece ser uma limitação do próprio Power BI visto que ele não consegue tratar os response headers:

https://community.fabric.microsoft.com/t5/Desktop/Retrieve-API-response-headers/m-p/423704

Já pensou em criar um script externo para fazer esse passo de autenticação e recuperar o cookie de acesso, e depois usar o output desse script como fonte no teu Power Query? Um usuário da comunidade fez um exemplo em python no tópico abaixo:

https://community.fabric.microsoft.com/t5/Developer/Power-Query-REST-API-with-Cookies/m-p/1992592

Apesar de não ser uma solução 100% dentro do Power Query, pelo menos evita a parte de extração manual do cookie.

Se essa resposta te ajudou, não se esqueça de marcar como melhor solução 😉

Abs!

Link para o comentário
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
×
×
  • Criar Novo...