Forum Discussion
Autenticación de API web con clave de API
Hola a todos
Tengo problemas para obtener datos de la API web. Obtuve la url y la clave api del cliente. En Postman iam pasando la url con encabezado como clave de API y valor de clave. Pero en Power BI, en el parámetro http request no puedo encontrar la clave de API. No puedo simplemente pasar la url ya que dice que el acceso está prohibido. así que manualmente le di la API KEY y el valor, pero dice que apikey funciona solo con acceso anónimo.
No estoy seguro de cómo seguir adelante. por favor ayúdame a salir de esto
6 Replies
- Syndicate_Admin
Administrator
Hay @vamshikrishna20
¿A qué API está intentando acceder?
Probablemente necesite pasar el nombre de usuario / contraseña / clave api como parte de los encabezados de solicitud. No sé exactamente cómo su API requiere esto o qué quiere decir con una clave de API, pero he visto API donde la clave de API se pasa como el nombre de usuario y la contraseña se deja en blanco.
Pruebe este código y deje la contraseña como ""
Username = "xxxxxxxx", Password = "", EncodedCredentials = "Basic " & Binary.ToText(Text.ToBinary(Username & ":" & Password ), BinaryEncoding.Base64), Token_Response = Json.Document(Web.Contents(api_url, [ Headers = [#"Content-Type"="application/x-www-form-urlencoded",#"Authorization"=EncodedCredentials], Content=Text.ToBinary("grant_type=client_credentials") ] ) )Saludos
Phil
- Syndicate_Admin
Administrator
- Syndicate_Admin
Administrator
Hay @vamshikrishna20
¿Cómo especifica la API que se utiliza la clave de API para conectarse a ella? No sé, la documentación de la API debería decírtelo.
¿Cómo obtuviste la clave de API?
Saludos
Phil
- Syndicate_Admin
Administrator
Hay @vamshikrishna20
No ha dicho a qué API está intentando acceder o si ha comprobado la documentación de la API que debería indicarle cómo conectarse a ella y obtener datos.
Otra forma de realizar la consulta es esta
let api_url = "https://api.com", ClientID = "", apikey = "YOUR-API-KEY", EncodedCredentials = "Basic " & Binary.ToText(Text.ToBinary(ClientID & ":" & apikey), BinaryEncoding.Base64), data= Json.Document(Web.Contents(api_url, [ Headers = [#"Authorization"=EncodedCredentials] ] ) ) in dataEste formato funciona con una API como Mailchimp que solo proporciona una clave de API.
Saludos
Phil
- Syndicate_Admin
Administrator
Hay @vamshikrishna20 ,
Mediante el uso de un proxy de función de Azure, es posible omitir la restricción de Power BI de no poder realizar la autenticación anónima en orígenes de datos web que requieren una clave de API.
para obtener más información, consulte:¿Respondí a su pregunta? Marcar mi publicación como solución!
SaludosLucien
- Syndicate_Admin
Administrator
Hola @vamshikrishna20 sé que esta respuesta es muy tardía jajaja. Como solución alternativa, tal vez pueda usar un conector de 3rd party, puede ahorrarle mucho tiempo en comparación con otras opciones. He probado windsor.ai, supermétricas (que no tienen PBI como destino, por lo que primero tienes que exportar a Google Sheets y luego exportar a PBI) y funnel.io. Me quedé con windsor porque es mucho más barato, así que solo para darte a conocer otras opciones. En caso de que te lo preguntes, para hacer la conexión primero busca el conector de Mailchimp en la lista de fuentes de datos:
Después de eso, primero tendrás que crear una clave API secreta en tu cuenta de Mailchimp y luego, usando tus credenciales, agregar tu cuenta a la plataforma.
Una vez que haya hecho esto, puede continuar e ir al paso "Vista previa y destino"
Allí sólo tienes que seleccionar los campos que necesitas. Finalmente, simplemente seleccione PBI como destino de sus datos y finalmente simplemente copie y pegue la url en PBI --> Get Data --> Web --> Pegue la url.