首页 > 解决方案 > 尝试创建照片场景时“令牌没有此请求的权限”

问题描述

我正在尝试创建一个照片场景。但我收到身份验证错误。我无法从示例中看出我做错了什么。

我运行了这个 curl 命令:

curl -v 'https://developer.api.autodesk.com/photo-to-3d/v1/photoscene' -X 'POST' -H 'Content-Type: application/json' -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsImtpZCI6Imp3dF9zeW1tZXRyaWNfa2V5In0.eyJ1c2VyaWQiOiJZUlZNSlNFNTdFVzMiLCJleHAiOjE1MzMwNjMxNzYsInNjb3BlIjpbImRhdGE6cmVhZCJdLCJjbGllbnRfaWQiOiJIQXFEdEtPN1ZidVJnSDBuTDBNRkowQjAyRWxCRUszbCIsImdyYW50X2lkIjoiZTdhdzM5bnNvU3ZIZVZrQ2w4SzhKUWt1WDVqaWJWU0siLCJhdWQiOiJodHRwczovL2F1dG9kZXNrLmNvbS9hdWQvand0ZXhwNjAiLCJqdGkiOiJBNlYyYUppRGpiWlU5bWVqeTJqdEpXUnh3OE9Td1JZTmpxbVBmNHlYZUhseERWVDRIVVVhOVpEMXp2VldWWHFhIn0.O-uBTW5ydubECaSecFa6lfIfU0oPAslCMcJ0r6ww4Zo' -d 'scenename=test_20180731110556' -d 'format=rcm,rcs,obj,report'  -d 'scenetype=object' -d 'gpstype=precise'  2> /tmp/test_20180731110556

我在 STDOUT 中收到此错误消息:

Token 没有此请求的权限。

这在 STDERR 中:

  • 在 DNS 缓存中未找到主机名 % Total Received % Xferd Average Speed Time Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- - -:--:-- 0* 正在尝试 52.40.81.206...
  • 连接到 developer.api.autodesk.com (52.40.81.206) 端口 443 (#0)
  • 成功设置证书验证位置:
  • CAfile:无 CApath:/etc/ssl/certs
  • SSLv3、TLS 握手、客户端问候 (1): } [未显示数据]
  • SSLv3、TLS 握手、Server hello (2): { [未显示数据]
  • SSLv3、TLS 握手、CERT (11): { [未显示数据]
  • SSLv3、TLS 握手、服务器密钥交换 (12): { [未显示数据]
  • SSLv3,TLS 握手,服务器完成 (14): { [未显示数据]
  • SSLv3、TLS 握手、客户端密钥交换 (16):} [未显示数据]
  • SSLv3,TLS 更改密码,客户端问候 (1):} [未显示数据]
  • SSLv3,TLS 握手,已完成 (20):} [未显示数据]
  • SSLv3,TLS 更改密码,Client hello (1): { [未显示数据]
  • SSLv3,TLS 握手,已完成 (20):{ [未显示数据]
  • 使用 ECDHE-RSA-AES128-GCM-SHA256 的 SSL 连接
  • 服务器证书:
  • 主题:businessCategory=私人组织;1.3.6.1.4.1.311.60.2.1.3=美国;1.3.6.1.4.1.311.60.2.1.2=特拉华州;序列号=2401504;C=美国;ST=加利福尼亚;L=圣拉斐尔;O=欧特克公司;OU=IPG - 核心服务;CN=developer.api.autodesk.com
  • 开始日期:2018-03-09 00:00:00 GMT
  • 到期日期:格林威治标准时间 2019-04-20 12:00:00
  • subjectAltName:developer.api.autodesk.com 匹配
  • 发行人:C=US;O=DigiCert 公司;OU=www.digicert.com;CN=DigiCert SHA2 扩展验证服务器 CA
  • SSL 证书验证正常。

  • POST /photo-to-3d/v1/photoscene HTTP/1.1 用户代理:curl/7.35.0

  • 主机:developer.api.autodesk.com 接受:/ Content-Type:
  • application/json 授权:承载
  • eyJhbGciOiJIUzI1NiIsImtpZCI6Imp3dF9zeW1tZXRyaWNfa2V5In0.eyJ1c2VyaWQiOiJZUlZNSlNFNTdFVzMiLCJleHAiOjE1MzMwNjMxNzYsInNjb3BlIjpbImRhdGE6cmVhZCJdLCJjbGllbnRfaWQiOiJIQXFEdEtPN1ZidVJnSDBuTDBNRkowQjAyRWxCRUszbCIsImdyYW50X2lkIjoiZTdhdzM5bnNvU3ZIZVZrQ2w4SzhKUWt1WDVqaWJWU0siLCJhdWQiOiJodHRwczovL2F1dG9kZXNrLmNvbS9hdWQvand0ZXhwNjAiLCJqdGkiOiJBNlYyYUppRGpiWlU5bWVqeTJqdEpXUnh3OE9Td1JZTmpxbVBmNHlYZUhseERWVDRIVVVhOVpEMXp2VldWWHFhIn0.O-uBTW5ydubECaSecFa6lfIfU0oPAslCMcJ0r6ww4Zo
  • 内容长度:88 } [未显示数据]
  • 上传完全发送:88 个字节中的 88 个
  • HTTP/1.1 403 Forbidden < Access-Control-Allow-Credentials: true
  • 访问控制允许标头:
  • Session-Id,Content-Length,Accept-Encoding,x-ads-acm-check-groups,Content-Encoding,x-ads-acm-namespace,Content-Type,If-Modified-Since,Range,Accept,x- ads-acm-groups,Content-Range,x-requested-with,Expect,Access-Control-Allow-Credentials,If-None-Match,Access-Control-Allow-Origin,x-csrf-token,x-ads-测试,授权,如果匹配
  • 访问控制允许方法:POST、GET、OPTIONS、HEAD、PUT、DELETE、PATCH
  • 访问控制允许来源:< 内容类型:文本/纯文本 < 日期:星期二,
  • 2018 年 7 月 31 日 18:05:56 GMT < Content-Length: 51 < Connection: keep-alive
  • { [数据未显示] 100 139 100 51 100 88 80 138
  • --:--:-- --:--:-- --:--:-- 138
  • 与主机 developer.api.autodesk.com 的连接 #0 保持不变

我最初创建访问令牌的请求是:

https://developer.api.autodesk.com/authentication/v1/authorize?response_type=token&client_id=HAqDtKO7VbuRgH0nL0MFJ0B02ElBEK3l&redirect_uri=http%3A%2F%2prod.sonautics.com/oauth/callback.php&scope=data:read%20data:write%20data:create%20"\n\n

标签: autodesk-forgeautodesk-realitycapture

解决方案


这是由于在您的请求中使用了三足令牌造成的。

即使文档中没有明确提及这一点,对于 Reality Capture API 调用,您也应该始终使用两条腿的令牌。

顺便说一句,为了方便使用 Reality Capture API 进行实验,我不久前创建了一个Postman集合,您可以在此处找到该集合(如果需要,它可以将请求显示为 curl 调用)。

该集合还包含一些未记录的调用,
The Hitchhiker's Guide to ... Reality Capture API博客文章中所述。


推荐阅读