【问题标题】:Data management API 403 Error: This user could not be authenticated数据管理 API 403 错误:无法验证此用户
【发布时间】:2021-10-15 18:56:35
【问题描述】:

我正在编写一个 python 脚本,它可以自动执行从项目中获取绘图文件的过程。目前我可以通过脚本访问集线器、项目列表和文件夹。但是,每当我尝试在文件夹中搜索所有绘图文件时,我都会收到 403 错误,提示无法对用户进行身份验证。

我正在使用 2 腿身份验证来获取访问令牌。我根据 api 的要求将 data:search 添加到范围,但仍然出现相同的错误。我在网上到处搜索,似乎没有任何效果。请问有没有人可以帮忙。

我附上了访问令牌功能、搜索功能和结果图片。

def getAccessToken():
url = "https://developer.api.autodesk.com/authentication/v1/authenticate"
payload = 'client_id={client_id}&client_secret={client_secret}&grant_type=client_credentials&scope=code%3Aall%20data%3Awrite%20data%3Aread%20data%3Asearch%20bucket%3Acreate%20bucket%3Adelete%20bucket%3Aread%20account%3Aread'
headers = {
    'Content-Type': 'application/x-www-form-urlencoded',
}
response = requests.request("POST", url, headers=headers, data=payload)
json_data = json.loads(response.text)
return json_data["access_token"]
token = getAccessToken()

def getDrawingFiles(folderId):




def getDrawingFiles(folderId):
    url = f"https://developer.api.autodesk.com/data/v1/projects/{project_id}/folders/{folderId}/search"
    payload = {}
    headers = {
        'Content-Type': 'application/x-www-form-urlencoded',
        'Authorization': f'Bearer {token}',
        'x-user-id': userId,
        'x-ads-region':'emea'
    }
    response = requests.request("GET", url, headers=headers, data=payload)
    json_data = json.loads(response.text)
    print(json_data)


getDrawingFiles('urn:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)

Error Message

谁能给点建议?

【问题讨论】:

    标签: autodesk-forge forge autodesk-bim360 autodesk-data-management


    【解决方案1】:

    您收到此错误的主要原因是因为在文件夹中进行搜索的端点只需要一个 3 腿身份验证令牌。不幸的是,没有提到像在其他端点中那样使用带有 xUserId 的 2 腿上下文。

    https://forge.autodesk.com/en/docs/data/v2/reference/http/projects-project_id-folders-folder_id-search-GET/#headers

    【讨论】:

      猜你喜欢
      • 2017-12-09
      • 2015-12-16
      • 1970-01-01
      • 2019-02-19
      • 2019-05-06
      • 1970-01-01
      • 2019-11-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多