【发布时间】:2022-01-08 12:03:19
【问题描述】:
昨天我正在使用以下代码通过 R 从我的 MS Dataverse 中获取数据。它工作正常。
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/crfd0_dartbuildingses", add_headers(Authorization = paste("Bearer", API.AuthKey, sep = " ")))
今天,尝试不加修改地运行相同的代码行给我一个 401 错误。基于对调试 401 错误的一些研究(没有一个特定于 MS Dataverse),我尝试清除我的缓存、清除我的 cookie、用ipconfig/flushdns 刷新我的 DNS 并直接导航到端点并检查返回以下 200 的请求回复:
通过所有这些努力,尽管这段代码昨天有效,但我仍然在 R 中收到以下响应:
我还使用 Postman 生成了一个新令牌。当我使用该令牌运行 GET 命令时,我的状态为 200。
API.AuthKey = "REDACTED TOKEN FROM POSTMAN"
GET.Buildings = GET("https://org593dc393.crm4.dynamics.com/api/data/v9.2/crfd0_dartbuildingses", add_headers(Authorization = paste("Bearer", API.AuthKey, sep = " ")))
GET.Buildings$status_code
[1] 200
对于我最初尝试的 R 响应中的任何人来说,我做错了什么是显而易见的吗?如果没有,我该如何调试?
【问题讨论】:
标签: r get microsoft-graph-api http-status-code-401 httr