2016-06-15 1 views
2

2 다리 인증을 사용하는 뷰어 응용 프로그램을 만들고 내 자체 버킷에 업로드 된 프로젝트를 표시합니다. 이제는 프로젝트를 내 버킷으로 보는 대신 Autodesk A360에 이미 업로드 된 프로젝트를 볼 수 있기를 바랍니다. I는 다음의 단계를 완료했는지를 들어Autodesk A360에서 URN을 사용하여 뷰어 응용 프로그램 만들기

:

결과적으로 변환 된 URN은 A360이 자체 뷰어에 사용하는 것과 동일해야합니다.

, 네트워크 콘솔은 다음과 같은 오류 메시지가 표시됩니다 내 자신의 응용 프로그램에 URN으로 프로젝트를 볼 때 : Error message

가 특정 요청을보고, 다음과 같은 응답이 반환됩니다 Response

또한 변환 된 URN이 A360이 사용중인 URN과 동일한 지 확인했습니다. 이를 위해 나는 A360의 응답과 비교 : 뷰어는 A360에서 작동 그래서, 내가 A360에서 프로젝트는 또한 버켓이 이미 존재 (내 자신의 응용 프로그램에서 볼 수 있는지 여부를 알고 싶습니다 URN

A360 뷰어이므로 버킷 생성 및 파일 업로드의 동일한 프로세스를 반복 할 이유가 없습니다. URN과 동일한 프로젝트를 사용할 수 있다면 요청이 승인되지 않은 이유를 알고 싶습니다.

추가 코드가 필요한 경우 요청하십시오.

답변

1

내 솔루션을 Augusto Goncalves의 애플리케이션 (https://github.com/Developer-Autodesk/data.management.api-nodejs-sample)과 비교 한 결과 마침내 문제를 해결할 수있었습니다.

  • 대신 dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6bXktYnVja2V0L215LWF3ZXNvbWUtZm9yZ2UtZmlsZS5ydnQ= (https://developer.autodesk.com/en/docs/data/v2/tutorials/app-managed-bucket/에 설명 된대로 받고, 파일 요청의 결과에서 identificator (urn:adsk.wipprod:fs.file:vf.6bVr4EVDSaOpykczeQYR2Q?version=1를) 프로젝트를 다운로드하고 내 자신의 버킷에 업로드하고 URL 친화적 Base64로로 변환).

이 방법은 정확한 URN을 반환되지만 후 URN 이외에 acmsession도 요청에 추가되어야한다.

curl -X 'POST' \ 
-H "Authorization: Bearer $token" -H 'Content-Type: application/json' \ 
-v 'https://developer.api.autodesk.com/oss-ext/v1/acmsessions' -d \ 
'{ 
    "application": "autodesk", 
    "x-ads-acm-check-groups": "true", 
    "x-ads-acm-namespace": "WIPDM" 
    }' 

이 요청의 결과는 URN에 추가해야합니다 코드를 반환 : 위의 샘플 코드에서, 나는 리버스 엔지니어링 다음과 같은 요청에 있었다.

viewer.load(doc.getViewablePath(geometryItems[0]), null, null, null, doc.acmSessionId /*session for DM*/); 

뷰어의 인스턴스를 만들 수 변경에 필요한이 솔루션을 사용하는 대신 요청 URL의 말미에 추가하는, 그것은 호출되는 방법을 추가해야합니다. https://developer.autodesk.com/en/docs/viewer/v2/tutorials/basic-viewer/에 설명 된 것처럼이를 수행하는 대신 위의 샘플 코드 index.js 파일에있는 솔루션으로 변경했습니다.

+0

는! 당신이 해결책? –

+0

로 표시 할 수 있습니다 나는이 문서화되어야한다고 생각합니다! 감사합니다! – Strnm

+1

부분 위의 나의 대답은 당신에게 명확하지 않습니까? 이것이 문서화되지 않은 이유가 있습니다. 당신은 미래의 어떤 지점에서 IT가 멈추기 때문에 설명하는 ACM 네임 스페이스 접근법을 사용하지 않아야합니다. 제가 이전에 말을 반복하자 : 나는 당신이 ACM 헤더를 사용하거나 직접 볼 수로드 할 WIPDM 항아리에 의존해서는 안 개발의 확인을 가지고있다. 파생 서비스에서 일부 논리를 직접 추가하여이를 추상화하고 그렇게 할 수 있습니다. 현재 A360 항목 버전에서 스토리지 URN을 사용하고 사용자 정의 svf 작업을 게시하는 것을 선호합니다. –

1

당신은 A360에 대한 세 가지 접근 CAD 모델과 뷰어에이를 표시하는 것이 GiHub에 다음과 같은 세 가지 샘플을 볼 수 있습니다 :

데이터 관리 APIP 샘플 : https://github.com/Developer-Autodesk/data.management.api-nodejs-sample

모델 파생 API 샘플 : https://github.com/Developer-Autodesk/model.derivative.api-nodejs-sample

실시간 왕복 BIM 편집기 : 그것이 roomedit3dv2 왕복 포지 BIM의 EDI에 의해 제공되는 작동 https://github.com/jeremytammik/model.derivative.api-nodejs-sample-roomedit3d

증명 8 분 데모 다시 cording :

https://www.youtube.com/watch?v=bDI5YX7PDP8

행운을 빕니다!

+0

:'{ "developerMessage": "인증 코드가/토큰 새로 고침을 만료되었거나 유효하지 않은/redirect_uri가 인증 요청과 동일한 값을 가져야합니다. ","userMessage ":" ","errorCode ":"AUTH-004 ","more info ":"http : //developer-stg.api .autodesk.com/documentation/v1/errors/AUTH-004 "}' – danrodi

+0

어제 나도 그 메시지를 보았다. 미안합니다. 나는 내 동료들에게 물어볼 것이다. –

+0

어제 캐시를 지우고 다시로드하여 문제를 해결했지만 여러 번 시도했습니다. 내 Forge DevCon 데모 중에 더 잘 작동되기를 바랍니다! –

1

개발 팀으로부터 ACM 헤더를 사용해서는 안되며 WIPDM 항아리를 사용하여 시야를 직접로드해야한다는 확인을 받았습니다. 앞으로 어떤 점에서 작업이 중단 될 것입니다. 파생 서비스에서 일부 논리를 직접 추가하여이를 추상화하고 그렇게 할 수 있습니다.

현재 아쉽게도 A360 항목 버전의 저장소 URN을 사용하고 신뢰할 수있는 새로운보기 가능 세트를 생성하는 맞춤 svf 작업을 게시하는 것이 좋습니다.

당신의 구체적인 예를 볼 수 있습니다 내 forge sample

//pick the last version by default 
var version = item.versions[ item.versions.length - 1 ] 

var storageUrn = window.btoa(
    version.relationships.storage.data.id) 

// !IMPORTANT: remove all padding '=' chars 
// not accepted by the adsk services 

storageUrn = storageUrn.replace(new RegExp('=', 'g'), '') 

var urn = version.relationships.derivatives.data.id 

console.log('A360 URN: ' + urn) // -> just for info 
console.log('Storage URN: ' + storageUrn) // -> use this URN to POST svf and trigger translation 
데이터 관리 API 샘플 및 모델 파생 API 샘플은 다음과 같은 오류 메시지를주고있다
관련 문제