es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo solucionar un error 401 de MS Dataverse a través de R?

Ayer estaba utilizando el siguiente código para obtener datos de mi MS Dataverse a través de R. Funcionaba bien.

require(httr)
require(rvest)

dataverse_api = oauth_endpoint(request = NULL, 
   authorize = "https://login.microsoftonline.com/REDACTED/oauth2/v2.0/authorize",
   access = "https://login.microsoftonline.com/REDACTED/oauth2/v2.0/token",
   base_url = "https://login.microsoftonline.com/common/oauth2/authorize?resourcehttps://org593dc393.crm4.dynamics.com")

API.Key = "REDACTED"
API.Secret = "REDACTED"

App = oauth_app("EPS Project Development", key = API.Key, secret = API.Secret)

API.token = oauth2.0_token(dataverse_api, App, scope = "https://org593dc393.crm4.dynamics.com/.default")
API.AuthKey = API.token$credentials$access_token

GET.Buildings = GET("https://org593dc393.crm4.dynamics.com/api/data/v9.2/crfd0dartbuildingses", add_headers(Authorization = paste("Bearer", API.AuthKey, sep = " ")))

Hoy, tratando de ejecutar las mismas líneas de código sin modificaciones, me está dando un error 401. Basado en algunas investigaciones sobre la depuración de errores 401 (ninguno de ellos específico de MS Dataverse) intenté limpiar mi caché, borrar mis cookies, vaciar mi DNS con ipconfig/flushdns y navegar directamente al punto final e inspeccionar la solicitud, que devolvió la siguiente respuesta 200:

View post on imgur.com

Con todos estos esfuerzos, a pesar de que este código funcionó ayer, todavía obtengo la siguiente respuesta en R:

班服高丸服

También generé un nuevo token usando Postman. Cuando ejecuto el comando GET usando ese token, obtengo un estado de 200.

API.AuthKey = "REDACTED TOKEN FROM POSTMAN"
GET.Buildings = GET("https://org593dc393.crm4.dynamics.com/api/data/v9.2/crfd0dartbuildingses", add_headers(Authorization = paste("Bearer", API.AuthKey, sep = " ")))

GET.Buildings$status_code
[1] 200

¿Es evidente para alguien en la respuesta de R a mi intento inicial qué hice mal? Si no, ¿cómo puedo depurar esto?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    No es inmediatamente evidente en la respuesta de R qué pudo haber salido mal. Sin embargo, dado que generar un nuevo token utilizando Postman resultó en una respuesta exitosa, es posible que el problema resida en el token de autenticación generado en el código original. Vale la pena comprobar si el token ha expirado o ha sido revocado. También podría ser útil comprobar los alcances y permisos de autenticación asociados con el token original para asegurarse de que no se hayan modificado. Además, revisar los registros de la API o contactar al proveedor de la API podría proporcionar una mayor comprensión del problema.

Comments are closed.