R httr MS Dataverse API:错误请求(HTTP 400),定义范围
R httr MS Dataverse API: Bad Request (HTTP 400), Define scope
我的问题与这个问题密切相关:。
我在 Azure AD 中设置了一个应用程序,我想用它来使用 R 从 MS Dataverse 中获取数据。我是 API 的新手,所以我首先在 Postman 中设置它。我在 Postman 中成功获取了我的数据,但它不需要 Scope 参数。
我试图在 R 中重现我在 Postman 中所做的...
require(rvest)
dataverse_api = oauth_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_token(dataverse_api, App)
这导致我的浏览器打开并给我一个错误,指出需要范围。我一直在搜索文档以找到范围的命名法,但没有成功。我找到了一些外围文档(1, 2 等),其中列出了诸如“ReadWrite.All”或“Files.ReadWrite.All”之类的选项,但我的理解是这些是权限这与范围不同。因为我不知道我在做什么,所以我尝试了其中的几个:
require(rvest)
dataverse_api = oauth_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_token(dataverse_api, App, scope = "User_impersonation")
结果总是一样的。浏览器打开并显示消息 Authentication complete. Please close this page and return to R.
,但在 R 中我得到:
Waiting for authentication in browser...
Press Esc/Ctrl + C to abort
Authentication complete.
Error in oauth2.0_access_token(endpoint, app, code = code, user_params = user_params, :
Bad Request (HTTP 400). Failed to get an access token.
从我上面引用的类似问题 link 中,我了解到我仍然缺少 Scope 参数。但我不知道从哪里获得 MS Dataverse 的 Scope 参数。有人可以帮忙吗?
我不知道是否还有其他选项,但如果它对其他人有帮助,我可以通过将范围指定为 Dynamics 365 URL 后跟 .default 来使其工作。对我来说,这看起来像:https://org593dc393.crm4.dynamics.com/.default
我的问题与这个问题密切相关:。
我在 Azure AD 中设置了一个应用程序,我想用它来使用 R 从 MS Dataverse 中获取数据。我是 API 的新手,所以我首先在 Postman 中设置它。我在 Postman 中成功获取了我的数据,但它不需要 Scope 参数。
我试图在 R 中重现我在 Postman 中所做的...
require(rvest)
dataverse_api = oauth_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_token(dataverse_api, App)
这导致我的浏览器打开并给我一个错误,指出需要范围。我一直在搜索文档以找到范围的命名法,但没有成功。我找到了一些外围文档(1, 2 等),其中列出了诸如“ReadWrite.All”或“Files.ReadWrite.All”之类的选项,但我的理解是这些是权限这与范围不同。因为我不知道我在做什么,所以我尝试了其中的几个:
require(rvest)
dataverse_api = oauth_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_token(dataverse_api, App, scope = "User_impersonation")
结果总是一样的。浏览器打开并显示消息 Authentication complete. Please close this page and return to R.
,但在 R 中我得到:
Waiting for authentication in browser...
Press Esc/Ctrl + C to abort
Authentication complete.
Error in oauth2.0_access_token(endpoint, app, code = code, user_params = user_params, :
Bad Request (HTTP 400). Failed to get an access token.
从我上面引用的类似问题 link 中,我了解到我仍然缺少 Scope 参数。但我不知道从哪里获得 MS Dataverse 的 Scope 参数。有人可以帮忙吗?
我不知道是否还有其他选项,但如果它对其他人有帮助,我可以通过将范围指定为 Dynamics 365 URL 后跟 .default 来使其工作。对我来说,这看起来像:https://org593dc393.crm4.dynamics.com/.default