无法检索访问令牌

Cannot retrieve access tocken

我正在使用 gitlab 代码对此 https://forge-digital-twin.autodesk.io/# 进行试验。我可以在本地显示它(没有引擎或数据流)但我无法获得访问令牌。

我正在使用 VSCode 扩展,如果我尝试创建存储桶等,我会收到代码 401(未经授权)错误(因此我尝试获取访问代码)。但是,当我使用这个请求时:

curl -i -X POST 'https://developer.api.autodesk.com/authentication/v1/authenticate' -H 'Content-Type: application/x-www-form-urlencoded' -d 'client_id=-----' -d 'client_secret= ----' -d 'grant_type=client_credentials' -d 'scope=data:write data:read bucket:create bucket:delete'

我收到这个错误:

Invoke-WebRequest:无法绑定参数 'Headers'。无法转换“内容类型: application/x-www-form-urlencoded”类型“System.String”的值 “System.Collections.IDictionary”。 在 line:1 char:90

我不知道我哪里出错了,我已经尝试了所有我能想到的方法。

希望能帮到你,谢谢:)

默认为Invoke-WebRequest。 尝试像这样使用 Invoke-RestMethod:

$Body = @{
    grant_type = "client_credentials"
    client_id = ""
    client_secret = ""
    scope = "data:write data:read bucket:create bucket:delete"
}
$Headers = @{
    'Content-Type' = 'application/x-www-form-urlencoded'
}

$response = Invoke-RestMethod -Method Post -Uri https://developer.api.autodesk.com/authentication/v1/authenticate' -Headers $Headers -Body $Body

如果您在使用 Visual Studio 代码的 Forge 扩展时遇到 401 问题,请确保您至少有一个“环境”配置了您的 Forge 客户端 ID 和密码。当您第一次激活扩展时,它会自动要求您提供凭据,但您也可以随时通过转到 Visual Studio 代码首选项并查找“伪造”来添加或编辑环境:

然后,在 Autodesk > Forge: Environments 部分,点击 Edit in settings.json link 并直接将环境编辑为 JSON,如果需要,创建一个新对象(设置 titleclientIdclientSecret 属性):

Btw. VSCode provides intelli-sense support when editing the settings.json file, so you'll see exactly which properties are expected/available in each environment.