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.

R httr MS Dataverse API: Petición incorrecta (HTTP 400), Definir alcance

Mi pregunta está estrechamente relacionada con esta pregunta: R httr Linkedin API: Bad Request (HTTP 400).

Tengo una aplicación configurada en Azure AD que me gustaría usar para obtener datos de MS Dataverse usando R. Soy nuevo en las APIs, así que primero lo configuré en Postman. Tuve éxito al acceder a mis datos en Postman, pero no requirió un parámetro de Scope.

Intenté recrear lo que hice en Postman en R…

require (rvest) 

dataverse<em>api = oauth</em>endpoint(request = NULL, 
   authorize = "REDACTED",
   access = "REDACTED",
   base_url = "REDACTED")

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

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

API.token = oauth2.0<em>token(dataverse</em>api, App)

Esto hizo que mi navegador se abriera y me diera un error diciendo que se requería un ámbito. He estado buscando a través de la documentación para encontrar la nomenclatura de los ámbitos, pero no he tenido éxito. He encontrado varios documentos (<a href="https://help.alteryx.com/20213/designer/microsoft-dataverse">1</a>, <a href="https://success.outsystems.com/Documentation/11/Extensibility_and_Integration/Integration_Builder/Use_Integration_Builder/Register_an_OutSystems_Integration_Builder_app_in_your_system/How_to_register_SharePoint_Online%2C_Microsoft_Dataverse%2C_or_Microsoft_Dynamics_365_apps_in_the_Azure_Active_Directory">2</a>, etc.) que son algo periféricos que enumeran opciones como «ReadWrite.All» o «Files.ReadWrite.All», pero mi entendimiento es que estas son permisos que son diferentes de los ámbitos. Como no sé lo que estoy haciendo, intenté varios de ellos de la siguiente manera:</p>

<p>“`
require (rvest)

dataverseapi = oauthendpoint(request = NULL,
authorize = “REDACTED”,
access = “REDACTED”,
base_url = “REDACTED”)

API.Key = “REDACTED”
API.Secret = “REDACTED”

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

API.token = oauth2.0token(dataverseapi, App, scope = “User_impersonation”)

El resultado siempre es el mismo. El navegador se abre con un mensaje
Autenticación completa. Cierre esta página y regrese a R.“`, pero en R obtengo:


Esperando la autenticación en el navegador...
Presione Esc / Ctrl + C para abortar
Autenticación completa.
Error en oauth2.0_access_token (endpoint, app, code = code, user_params = user_params, :
Bad Request (HTTP 400). No se pudo obtener un token de acceso.

A partir del enlace que cité anteriormente como una pregunta similar, entiendo que aún me falta el parámetro Scope. Pero no sé dónde obtener el parámetro de ámbito para MS Dataverse. ¿Alguien puede ayudar con esto?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que el usuario está intentando autenticarse con MS Dataverse utilizando R y oauth2.0, pero está encontrando un error porque se requiere un parámetro de alcance. El usuario ha intentado varias opciones como parámetro de alcance, pero no ha tenido éxito.

    Desafortunadamente, el usuario no ha proporcionado suficiente información sobre los permisos específicos que está intentando obtener o los puntos finales a los que está intentando acceder dentro de MS Dataverse. Los alcances se refieren a los permisos específicos que una aplicación solicita al acceder a una API y generalmente son específicos de cada API. Sin conocer los permisos específicos requeridos por la aplicación, sería difícil identificar los alcances adecuados a utilizar.

    Es posible que el usuario necesite consultar la documentación o los recursos de soporte para MS Dataverse para determinar los alcances adecuados para solicitar en el flujo de autenticación de su API. Una vez identificados los alcances correctos, pueden incluirse en la llamada a la función oauth2.0_token() para autenticar al usuario y obtener un token de acceso.

Comments are closed.