Studio 세션 가이드
Studio 세션은 PDF 도면에 동시 또는 비동기적으로 표시를 할 수 있는 디지털 회의실과 같다고 생각하시면 됩니다. 이 가이드에서는 Studio 세션의 일반적인 수명 주기를 다루며 코드 예제를 포함합니다. Studio와 Studio 세션에 대해 자세히 알아보려면 Studio FAQ 페이지를 방문하세요.
모든 엔드포인트에 적용되는 지역별 기본 URL이 있습니다.
- 미국: https://api.bluebeam.com
- 독일: https://api.bluebeamstudio.de
- 호주: https://api.bluebeamstudio.com.au
- UK: https://api.bluebeamstudio.co.uk
- SE: https://api.bluebeamstudio.se
예를 들어, 미국에서 https://api.bluebeam.com/publicapi/v1/sessions가 발생하면 호주에서는 https://api.bluebeamstudio.com.au/publicapi/v1/sessions 가 됩니다.
Studio 세션 라이프사이클
Studio Session의 수명 주기는 4가지 부분으로 나눌 수 있습니다.
-
초기화 – "디지털 회의실"을 열기
-
세션에 PDF를 추가하여 보고 표시할 수 있습니다.
-
세션에 사용자를 추가하여 사용자가 보고 표시할 수 있도록 합니다.
-
마무리 – 세션을 닫고 표시된 PDF를 원래 시스템으로 반환합니다.
Studio 세션의 수명 주기의 첫 번째 단계는 세션의 생성입니다. 시작하려면 다음 매개변수를 사용하여 세션 엔드포인트에 POST 명령을 실행합니다.
엔드포인트
https://api.bluebeam.com/publicapi/v1/sessions
요청 헤더에 client_id를 포함해야 합니다.
요청 매개변수
|
이름 |
설명 |
값 유형 / 가능한 값 |
|---|---|---|
|
|
세션 이름 |
문자열 |
|
|
|
부울 |
|
|
|
부울 |
|
|
이 날짜가 되면 호스트를 제외한 모든 참가자가 세션에서 제외됩니다. |
Must be formatted in UTC format. |
|
|
이 권한 집합은 호스트(현재 사용자)를 제외하고 이 세션에 추가된 모든 사용자에게 적용됩니다. 호스트가 모든 제어권을 갖습니다. |
아래에서 권한 유형과 권한 자체를 정의하세요. |
|
권한 |
설명 |
값 유형 / 가능한 값 |
|---|---|---|
|
|
허가 유형 |
|
|
|
권한 상태 |
허용, 거부, 기본값 |
세션 종료일
세션 종료일은 필수는 아니지만, 세션 종료일을 선택한 경우 세션 참가자에게 만료일 7일 전, 2일 전, 24시간 전에 이메일로 알림이 전송됩니다.
cURL 예제
cURL [https://api.bluebeam.com/publicapi/v1/sessions](https://api.bluebeam.com/publicapi/v1/sessions) \
-H "Authorization: Bearer {valid access_token}" \
-H "Content-Type: Application/JSON" \
-H "client_id: [your client_id]" \
-d '{
"Name":"Pied Piper Acquisition Review",
"Notification": true,
"Restricted": true,
"SessionEndDate": "2016-08-17T21:09:07.5174221Z",
"DefaultPermissions":[
{
"Type":"SaveCopy",
"Allow":"Allow"
},
{
"Type":"PrintCopy",
"Allow":"Allow"
},
{
"Type":"Markup",
"Allow":"Allow"
},
{
"Type":"MarkupAlert",
"Allow":"Allow"
},
{
"Type":"AddDocuments",
"Allow":"Deny"
}
]
}' \
-X POST
권한
현재 Studio 사용자는 특정 권한 기본값에 익숙해져 있는 경우가 많습니다. 기본 권한이 무엇인지 확인하거나 사용자가 권한을 선택하도록 하는 것이 좋습니다. Bluebeam API를 사용하여 권한을 설정하는 경우 '거부'가 기본값입니다.
대응 기관
{
"$id": "1",
"Id": "123-456-789"
}
다음 단계는 PDF 파일을 추가하는 것입니다. 파일 추가는 3단계 과정으로 진행됩니다.
-
Bluebeam API를 통해 파일의 메타데이터 블록을 생성합니다.
-
파일을 AWS에 직접 업로드하세요
-
Bluebeam API를 통해 업로드 확인
PDF/A는 보관 형식이므로 편집이 불가능하며, 이로 인해 아래 4단계가 실패하게 됩니다.
엔드포인트
https://api.bluebeam.com/publicapi/v1/sessions/{sessionId}/files
매개변수
|
이름 |
설명 |
값 유형 / 가능한 값 |
|---|---|---|
|
|
파일 이름 |
".pdf"로 끝나는 문자열 |
|
|
소스 경로. 이는 나중에 프로세스에서 파일이 어디에서 왔는지 식별하는 데 도움이 될 수 있습니다. |
문자열 |
|
|
파일 크기; 서버가 계산하도록 null을 남겨두세요. |
정수 |
|
|
서버가 계산할 수 있도록 null을 남겨두세요. |
문자열 |
cURL 예제
cURL [https://api.bluebeam.com/publicapi/v1/sessions/123-456-789/files](https://api.bluebeam.com/publicapi/v1/sessions/123-456-789/files) \
-H "Authorization: Bearer {valid access_token}" \
-H "Content-Type: Application/JSON" \
-H "client_id: [your client_id]" \
-d '{
"Name":"Pied_Piper_Acquisition.pdf",
"Source":"[https://portfolio.raviga.com/primarybets/piedpiper/legaldocs/Pied_Piper_Acquisition.pdf](https://portfolio.raviga.com/primarybets/piedpiper/legaldocs/Pied_Piper_Acquisition.pdf)"
}' \
-X POST
예시 응답
{
"Id": 1234567
"UploadUrl":"{upload file to this URL}"
"UploadContentType":"Application/PDF"
}
업로드 창
업로드 URL은 업로드를 시작하기 위해 10분 동안 유효합니다.
파일에 대한 메타데이터 블록 자리 표시자가 생기면 이전 POST 요청에서 반환된 UploadURL 에 PUT 요청을 수행합니다. PUT 요청에서 헤더에 다음을 포함하세요.
-
"x-amz-server-side-encryption"값"AES256" -
값이
"application/pdf""Content-Type"
엔드포인트
https://api.bluebeam.com/publicapi/v1/sessions/{sessionId}/files/{id}/confirm-upload
cURL 예제
cURL [https://api.bluebeam.com/publicapi/v1/sessions/123-456-789/files/1234567/confirm-upload](https://api.bluebeam.com/publicapi/v1/sessions/123-456-789/files/1234567/confirm-upload) \
-H "Authorization: Bearer {valid access_token}" \
-H "client_id: [your client id]" \
-X POST
대응
성공하면 204 응답을 받게 됩니다. 오류에 대해서는 인증 가이드 하단의 일반 HTML 응답 코드를 참조하세요.
이제 PDF가 포함된 세션이 생겼으므로 세션에 사용자를 추가할 차례입니다. 세션의 개시자(현재 사용자)는 자동으로 세션 호스트가 되며, 자동으로 세션 사용자에 추가됩니다. 세션이 활성화되어 있는 동안에는 항상 더 많은 사용자를 추가할 수 있습니다. 사용자를 추가하는 방법은 2가지가 있습니다.
이 방법은 아직 Studio 계정이 없는 사용자를 초대하는 데 가장 좋습니다. 초대받은 사람에게 무료 Studio 계정을 생성할 수 있는 기회가 담긴 이메일이 전송됩니다.
엔드포인트
https://api.bluebeam.com/publicapi/v1/sessions/{sessionId}/invite
매개변수
|
이름 |
설명 |
|---|---|
|
|
초대장을 보낼 이메일 주소 |
|
|
이메일에 표시되는 사용자 정의 메시지 |
예
cURL https://api.bluebeam.com/publicapi/v1/sessions/{session}/invite \
-H "Authorization: Bearer {token}" \
-H "Content-Type: Application/JSON" \
-H "client_id: {client_id}" \
-d '{
"Email":"gavin.belson@hooli.com",
"Message":"Pied Piper 인수 관련 문서를 검토할 수 있도록 이 세션에 참여해 주세요."
}' \
-X POST
대응
성공하면 204 응답을 받게 됩니다. 오류에 대해서는 인증 가이드 하단의 일반 HTML 응답 코드를 참조하세요.
또는
이 방법은 해당 이메일 주소가 이미 Studio 계정과 연결되어 있고, 가입하지 않고도 Studio 세션에 추가하려는 경우에 가장 좋습니다. 사용자에게 계정이 없거나 계정이 있는지 확실하지 않은 경우 방법 A: 사용자 초대를 사용하세요. 방법 B: 사용자 추가를 사용하면 사용자가 Studio 세션의 참석자에 추가되고, Studio 세션은 Revu 인터페이스의 Studio 탭에 있는 참석 세션에 나타납니다.
엔드포인트
https://api.bluebeam.com/publicapi/v1/sessions/{sessionId}/users
매개변수
|
이름 |
설명 |
|---|---|
|
|
알려진 Studio 계정의 이메일 주소 |
|
|
부울; 예: 초대받은 사람에게 이메일을 보냅니다. 아니요: 초대받은 사람에게 이메일 알림을 보내지 않습니다. |
|
|
이메일에 표시되는 사용자 정의 메시지 |
예
cURL [https://api.bluebeam.com/publicapi/v1/sessions/123-456-789/users](https://api.bluebeam.com/publicapi/v1/sessions/123-456-789/users)
-H "Authorization: Bearer {valid access_token}" \
-H "Content-Type: Application/JSON" \
-H "client_id: [your client id]" \
-d '{
"Email": "peter.gregory@raviga.com",
"SendEmail": true,
"Message": "요청하신 대로, Pied Piper 인수 문서를 검토할 수 있는 세션입니다."
}' \
-X POST
대응
성공하면 204 응답을 받게 됩니다. 오류에 대해서는 인증 가이드 하단의 일반 HTML 응답 코드를 참조하세요.
샘플 세션 초대 이메일
세션을 종료하려면(일반적으로 참석자가 표시를 마치거나 세션 만료 날짜에 도달한 후) 상태를 변경하고, 파일을 처리하고, 세션 자체를 적절히 폐기해야 합니다.
세션 상태를 완료 중으로 설정하면 호스트를 제외한 모든 사용자가 세션에서 제거됩니다. 이는 세션 파일을 다운로드한 후에 해당 파일이 더 이상 변경되지 않도록 방지하기 위해 수행됩니다.
엔드포인트
https://api.bluebeam.com/publicapi/v1/sessions/{id}
예
cURL https://api.bluebeam.com/publicapi/v1/sessions/123-456-789 \
-H "Authorization: Bearer {valid access_token}" \
-H "Content-Type: Application/JSON" \
-H "client_id: [your client id]" \
-d '{"Status": "Finalizing"}' \
-X PUT
표시된 세션 파일을 다운로드하는 과정은 2단계로 구성됩니다. 세션의 각 파일에 대해 아래 단계를 따르세요.
i. 스냅샷 생성
세션 중에는 PDF와 마크업이 별도로 저장됩니다. 스냅샷은 PDF 콘텐츠와 마크업 레이어를 단일 PDF로 결합하여 Studio 세션 외부의 PDF에서 마크업을 볼 수 있도록 합니다.
엔드포인트
https://api.bluebeam.com/publicapi/v1/sessions/{sessionId}/files/{id}/snapshot
예
cURL [https://api.bluebeam.com/publicapi/v1/sessions/123-456-789/files/1234567/snapshot](https://api.bluebeam.com/publicapi/v1/sessions/123-456-789/files/1234567/snapshot) \
-H "Authorization: Bearer {valid access_token}" \
-H "client_id: [your client id]" \
ii. 스냅샷 상태 확인, 완료되면 다운로드
Status Complete 또는 Error 될 때까지 스냅샷 엔드포인트에 GET 요청을 만듭니다.
-
Error의 경우: 사용자에게 표시될 수 있는 오류 메시지를 포함합니다. -
Complete되면:DownloadUrl사용하여 스냅샷을 다운로드하세요.
엔드포인트
https://api.bluebeam.com/publicapi/v1/sessions/{sessionId}/files/{id}/snapshot
예
cURL [https://api.bluebeam.com/publicapi/v1/sessions/123-456-789/files/1234567/](https://api.bluebeam.com/publicapi/v1/sessions/123-456-789/files/1234567/)
-H "Authorization: Bearer {valid access_token}" \
-H "client_id: [your client id]" \
-X GET
대응 기관
{
"Status": "Complete",
"StatusTime": "{The last time the Status was changed}",
"LastSnapshotTime": "{Time of last successful Snapshot}",
"DownloadUrl": "{A download URL for the last successful Snapshot}"
}
상태 옵션
|
상태 |
설명 |
|---|---|
|
|
파일에서 스냅샷이 호출된 적이 없는 경우 |
|
|
스냅샷 작업은 아직 시작되지 않았지만 요청을 받았습니다. |
|
|
스냅샷 작업이 진행 중입니다. |
|
|
스냅샷 작업이 완료되었으며 |
|
|
스냅샷 작업이 실패했습니다. 상태에는 오류 메시지가 포함됩니다. |
이제 마크업된 PDF가 있으므로 세션 ID 엔드포인트에 DELETE 요청을 보내서 세션을 삭제할 수 있습니다.
엔드포인트
https://api.bluebeam.com/publicapi/v1/sessions/{id}
세션 종료 예
cURL [https://api.bluebeam.com/publicapi/v1/sessions/123-456-789](https://api.bluebeam.com/publicapi/v1/sessions/123-456-789) \
-H "Authorization: Bearer {valid access_token}" \
-H "Content-Type: Application/JSON" \
-H "client_id: [your client id]" \
-X DELETE
결론
파일을 원래 위치로 되돌리고 세션을 보관하면 일반적인 Studio 세션 수명 주기가 완료됩니다. Studio 세션을 사용하는 방법은 다양하지만, 이 연습을 통해 기본 사항을 잘 이해하는 데 도움이 되었기를 바랍니다.
또한 참조하세요:
리소스
Revu 21
Developer Portal
Developer Portal
