Expression.Error: No se nos ha dado permiso para realizar acciones contra este recurso.

Un usuario Pregunto ✅

mrgou

Basándome en la útil respuesta que recibí aquí, creé este fragmento de código como una prueba para autenticar y extraer datos de una API REST, y lo pegué en el Editor avanzado de una consulta en blanco.

La API requiere autenticación de nombre de usuario y contraseña a través de una solicitud POST (no GET), con el nombre de usuario y la contraseña pasados ​​como parámetros de consulta (no en los encabezados), y luego devuelve un ID de sesión. Puedo ejecutar esta consulta de autenticación HTTP con éxito en Postman:

let
    rooturl = "https://rooturl.com/",
    //credentials
    username = "myusername",
    password = "mypassword",
    relativeURL =
        "api/v20.3/auth",
    //connect to server
    GetJson =
        WebAction.Request(
            "POST",
            rooturl,
            [
                Headers = [
                    #"Content-Type" = "application/json"
                ],
                Query = [
                    #"username" = username,
                    #"password" = password
                ],
                RelativePath = relativeURL
            ]
        ),
    //'session Id' for advanced operation
    sessionId = Json.Document(GetJson)[sessionId],
    Source =
        Web.Contents(
            (omitting for brevity)
        )
in
    Source

Desafortunadamente, el paso WebAction.Request desencadena el siguiente error: Expression.Error: No se nos ha dado permiso para realizar acciones contra este recurso.

Simplemente no entiendo lo que esto significa, e incluso si se envió la solicitud HTTP. Encontré una pregunta similar aquí, pero realmente no entiendo la solución propuesta y cómo se aplicaría a mi caso.

¡Gracias de antemano por tu ayuda!

Hola @mrgou,

Revise el contenido en el siguiente enlace, espero que pueda ayudarlo a resolver el problema.

No poder acceder a los datos a través de la solicitud de publicación de API

Atentamente

mrgou

¡Si, gracias! Pasando un cuerpo vacío en una función Web.Content (Contenido = Text.ToBinary («»)) Hizo el truco. Curiosamente, eso parece implicar que Web.Actions realmente no funciona, aunque …

Hola @mrgou,

Revise el contenido en el siguiente enlace, espero que pueda ayudarlo a resolver el problema.

No poder acceder a los datos a través de la solicitud de publicación de API

Atentamente

Deja un comentario

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