Conexión de PowerBI a REDCap a través de API con token

Un usuario Pregunto ✅

DBirdman AR

Hola a todos,

Estoy tratando de conectar PowerBI a REDCap (consulte https://projectredcap.org/), que es una aplicación PHP/MySQL que tiene una API que usa HTTP POST para permitir que los usuarios extraigan datos con un token válido.

He tenido muchos problemas para formatear la llamada de PowerBI. Sé que tengo los permisos adecuados porque puedo usar R para consultar mi API. Esta es una llamada R válida a la API

library(RCurl)
 result <- postForm(
     uri='MY APIs URL',
     token='MY VALID TOKEN',
     content="project",
     format="json",
     returnFormat="json"
 )
 print(result)

y obtengo una buena respuesta. Sin embargo, no puedo entender cómo traducir esto a PowerBI.

Lo que es interesante es que cuando ejecuto este código aparece un error que dice que aparece el error «Expresión.Error: el acceso al recurso está prohibido».

let
     url = "MY APIs URL",
     body = "{ 
     ""token"":""MY VALID TOKEN HERE"", 
     ""content"":""project"", 
     ""format"":""json"", 
     ""returnFormat"";""json""
     }",

     Source = Json.Document(Web.Contents(
          url,
          [Headers = [#"Content-Type"="application/json"],
          Content=Text.ToBinary(body)]))
in
     Source

Cuando hago clic en «Editar configuración», aparece esta ventana emergente que acepto como «OK», pero sigo recibiendo el error «Web.Contents no pudo obtener el contenido de ‘Mi URL de API’ (501): no implementado». Sé que tengo permisos porque puedo hacer que R ejecute el código y obtengo una respuesta. Creo que no estoy formateando correctamente el código M, pero no estoy seguro de cómo hacerlo.

Error1.png

cwileyrrt

¿Alguien puede describir los pasos que se tomaron para que esto funcione?

Actualmente uso el conector GitHub que permite la actualización local pero no permite la actualización automática en línea. No estoy seguro de qué conector estaban usando para el código que aparece a continuación.

DBirdman AR

Hola a todos, encontré una API REDCap pública (vea https://cran.r-project.org/web/packages/REDCapR/vignettes/TroubleshootingApiCalls.html que a mitad de camino dice

Si le ayuda comenzar con un servidor REDCap diferente, puede usar este proyecto ficticio que contiene datos falsos alojados por el OUHSC BBMC. la url es https://bbmc.ouhsc.edu/redcap/api/. Hay tres pares clave-valor: (1) el ‘token’ es 9A81268476645C4E5F03428B8AC3AA7B, (2) el ‘contenido’ es registro, y (3) el ‘formato’ debe ser CSV. Al verificar su propio servidor, el valor del token debería cambiar, pero el contenido y el formato no. Debería devolver cinco registros en formato CSV. El ‘estado’ debe ser 200 bien.

Instalé Postman en Chrome y probé la API ficticia en bbmc y tanto ella como mi API funcionan dentro de Postman. Es claramente un error que estoy teniendo al intentar configurar PowerBI.

Traté de configurar una conexión muy simple como esta, pero sigo recibiendo un error Detalles: «Web.Contents no pudo obtener contenidos de ‘https://bbmc.ouhsc.edu/redcap/api/’ (501): No implementado «

Error2.png

DBirdman AR

En respuesta a DBirdmanAR

Eran dos temas:

  1. Necesito cambiar a x-www-form-urlencoded
  2. Hubo graves errores de formato tanto en los encabezados como en el contenido.
let
    actualUrl = "https://bbmc.ouhsc.edu/redcap/api/",
    record  =[token="9A81268476645C4E5F03428B8AC3AA7B",
    content="record",
    format="csv"
    ],
    body = Text.ToBinary(Uri.BuildQueryString(record)),
    options = [Headers =[#"Content-type"="application/x-www-form-urlencoded"], Content=body],
    result = Web.Contents(actualUrl, options)
    
in
    result

En respuesta a DBirdman AR

Hola @DBirdmanAR,

¿Qué tal el resultado después de seguir las sugerencias mencionadas en mi publicación original? ¿Podría proporcionar más detalles al respecto si no cumple con sus requisitos?

Atentamente,

En respuesta a DBirdmanAR

Hola @DBirdmanAR,

Su consulta funciona bien por mi parte, intentamos convertir el resultado con formato csv y obtener los datos ficticios como documento. Si tiene alguna otra pregunta, por favor pregunte aquí e intentaremos resolverla.

4.jpg

Atentamente,

274188A

En respuesta a v-tapa-msft

Perfecto para mis necesidades, un año después, ¡pero GRACIAS! Salvavidas.

¿Hay un límite en la cantidad de campos a los que puedo conectarme? tengo 250!

Salud,

John

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *