访问项目中的用户时出现403错误

403 error when accessing users in a project

我正在尝试使用此 Forge API 获取有权访问项目的用户列表。我将范围指定为 account:read。我尝试起诉 Postman 以及我正在开发的 ASP.NET 核心后端。 在这两种情况下,我都会得到相同的错误:

{
    "status": 403,
    "type": "",
    "id": "80757c600ab0de6c",
    "title": "Forbidden",
    "detail": "The 3 legged access token does not have access"
}

我需要在 BIM 360 中更改什么才能解决此错误吗? 这是我的后端代码 (BASE URL):


        [HttpPost]
        [Route("api/forge/bim360/projectusers")]
        public async Task<dynamic> GetProjectUsersAsync([FromQuery] string projectId, [FromQuery] string userId)
        {
            dynamic access_token = await CheckToken();

            RestClient client = new RestClient(BASE_URL);
            RestRequest request = new RestRequest("/bim360/admin/v1/projects/{project_id}/users", RestSharp.Method.GET);
            request.AddParameter("project_id", projectId, ParameterType.UrlSegment);
            request.AddHeader("Authorization", "Bearer " + access_token);
            request.AddHeader("User-Id", userId);

            try
            {
                IRestResponse issueTypesResponse = await client.ExecuteGetTaskAsync(request);
                dynamic users = JObject.Parse(issueTypesResponse.Content);

                return Ok("Found Users");
            }
            catch (Exception ex)
            {
                //TODO Add real logger
                StreamWriter st = new StreamWriter(@"Logg/logg.txt", true);
                st.Write(ex.Message);
                st.Close();
                return StatusCode(500);
            }
        }

感谢任何帮助。

刚刚在此处尝试了您的代码,它工作正常。 错误消息指出 3LO 上的用户无权访问项目用户。 请注意,此端点适用于 3LO 或 2LO(有或没有 User-id)。 如果您更改为具有权限的用户或 2LO,您应该能够访问项目用户。 使用 3LO 时,权限由获得令牌的用户授予(User-id header 被忽略)。

研究了一段时间并弄明白了。它与 Forge App 的设置方式有关。我们检索到的访问令牌无法访问用户详细信息。