mhadi
Preparé un tablero cienciométrico usando Power BI que está conectado directamente a la base de datos de Scopus llamando a las claves API. En mi escritorio de Power Bi, puede actualizar los datos sin ningún error, pero después de publicar el tablero en el sitio web de Power Bi, no se puede actualizar y devuelve un error de credencial:
Última actualización fallida: miércoles 27 de noviembre de 2019 12:32:39 GMT+0330 (hora estándar de Irán) Hubo un error al procesar los datos en el conjunto de datos. Ocultar detalles Mensaje: Las credenciales proporcionadas para la fuente web no son válidas. (Fuente en https://api.elsevier.com/content/search/scopus.) Tabla: API-Scopus-All. URI de clúster: WABI-EAST-ASIA-A-PRIMARY-redirect.analysis.windows.net ID de actividad: 7edc8fb9-5513-465d-a35b-70cc5629d0d0 ID de solicitud: 2edb255e-20fe-d1db-6b7d-2cf1b6681fc5 Hora: 2019-11- 27 09:02:39Z
El siguiente código es mi consulta en Power BI. Además, mi credencial en el escritorio es «Básica» con «Nombre de usuario» = mi apikey
Solo eliminé mi apikey del código. Cualquiera que quiera reproducir los resultados, debe reemplazar su Scopus apikey (https://dev.elsevier.com/) con APIKEY.
Agradezco cualquier ayuda para resolver el problema de la credencial. muchas gracias
let Source = 1000, //the total value from a total rows api? Starts = List.Generate(()=>0, each _ < Source, each _ + 25), #"Converted to Table" = Table.FromList(Starts, Splitter.SplitByNothing(), null, null, ExtraValues.Error), #"Changed Type" = Table.TransformColumnTypes(#"Converted to Table",{{"Column1", type text}}), #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each Json.Document(Web.Contents( "https://api.elsevier.com/", [ RelativePath="content/search/scopus/", Query= [ view="complete", count="25", query="AFFIL ( {Environmental Research Center} OR {Institute for Environmental Research} ) AND AFFIL ( {Tehran University of Medical Sciences} OR {Tehran University of Medical Science} ) AND AFFIL ( {Netherlands})", apiKey="APIKEY", limit="40", start=""&[Column1] ] ] ))),
#"Added Custom"
v-shex-msft
Hola @MHadi,
¿Has revisado la lista de limitaciones de esa API? Si su escenario no cumple con el requisito, bloqueará la solicitud que envíe desde las tablas de consulta de energía.
Configuración de la clave API
Además, ¿ha intentado agregar pasos personalizados para verificar y obtener la última clave de API de la API de reposo? (evitará problemas de caducidad de la clave API)
Saludos,
Xiaoxin-sheng
mhadi
En respuesta a v-shex-msft
querido Xiaoxin-sheng
Muchas gracias por su respuesta a mi pregunta, pero su recomendación no puede resolver mi problema. Debería aclarar más el problema.
Tengo dos consultas siguientes, ambas funcionan bien y se consultaron sin ningún error en Power BI de escritorio. La primera consulta también se puede consultar bien en la web de Power BI, pero la segunda consulta no se pudo consultar en la web y devuelve un error de credencial. La primera consulta devuelve solo 25 registros, pero como tenía que devolver todos mis registros (809 registros), la cambié haciendo una ruta relativa usando la recomendación aquí. Creo que usar una ruta relativa en la segunda consulta, que es mi caso problemático, puede evitar que se detecten los datos de credenciales. Pero no tengo solución para esto. (en las consultas solo CLAVE API debe reemplazarse con su clave API, puede registrarse para obtener la clave API aquí). Gracias de nuevo por cualquier ayuda.
Primera consulta:
let
source=Json.Document(Web.Contents("https://api.elsevier.com/content/search/scopus?&view=complete&query=AFFIL ({Environmental Research Center} OR {Institute for Environmental Research} ) AND AFFIL({Tehran University of Medical Sciences} OR {Tehran University of Medical Science} )&apiKey=APIKEY"))
in
source
Segunda consulta:
let
source=Json.Document(Web.Contents(
"https://api.elsevier.com/",
[
RelativePath="content/search/scopus/",
Query=
[
view="complete",
query="AFFIL ( {Environmental Research Center} OR {Institute for Environmental Research} ) AND AFFIL ( {Tehran University of Medical Sciences} OR {Tehran University of Medical Science} )",
apiKey="APIKEY"
]
]
))
in
source
v-shex-msft
En respuesta a mhadi
Hola @MHadi,
Tal vez pueda ponerse en contacto con @ImkeF para obtener algunas sugerencias sobre el conector web de consulta de energía con la API de descanso.
Saludos,
Xiaoxin-sheng
ImkeF
En respuesta a v-shex-msft
Hola @MHadi
la primera consulta no me funciona. Este es el error que me sale en el navegador:
¿Podrías por favor revisar el código? (He creado mi propia clave API)
mhadi
En respuesta a ImkeF
Hola querido @ImkeF
Gracias por tu respuesta, lo revisé. Me funciona sin problema. Creo que tu caso puede deberse a dos cosas posibles:
– No puede pegar su clave API en el cuadro de nombre de usuario en la configuración básica de la credencial.
– Es posible que su sistema no esté suscrito a Scopus. Nuestra universidad ha comprado la suscripción a Scopus.
Gracias de nuevo.
ImkeF
En respuesta a mhadi
Hola @MHadi
consulte este artículo para obtener una sintaxis alternativa: http://blog.datainspirations.com/2018/02/17/dynamic-web-contents-and-power-bi-refresh-errors/ un poco.
mhadi
En respuesta a ImkeF
Hola @ImkeF
Gracias por referirme a la dirección del blog,
pero yo mismo seguí previamente la recomendación en ese blog, como puede ver en mi consulta 2 arriba, en la que usé una dirección relativa para Scopus, pero finalmente devuelve un error de credencial en la prueba de actualización web. También intenté seguir la consulta usando el encabezado, pero este tampoco pudo resolver el problema de referencia en la web.
Por cierto, creo que lo intenté de todas las formas, pero necesito ser más grande en PBI y mi mente está completamente confundida por este problema. Gracias de cualquier manera…
Consulta 3
let
Source = 25, //the total value from a total rows api?
Starts = List.Generate(()=>0, each _ < Source, each _ + 25),
#"Converted to Table" = Table.FromList(Starts, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Changed Type" = Table.TransformColumnTypes(#"Converted to Table",{{"Column1", type text}}),
#"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each Json.Document(Web.Contents("https://api.elsevier.com/",
[RelativePath="content/search/scopus", Headers = [#"X-ELS-APIKey"="APIKEY" ,#"Accept"="application/json"],
Query=[query="AFFIL ( {Environmental Research Center} OR {Institute for Environmental Research} ) AND AFFIL ( {Tehran University of Medical Sciences} OR {Tehran University of Medical Science} )",
view="complete",
limit="40",
start="&[Column1]",
count="25"]])))
in
#"Added Custom"