Studio セッションガイド
Studio セッションは、PDF 図面を同時にまたは非同期にマークアップできるデジタル会議室のようなものと考えてください。このガイドでは、Studio セッションの一般的なライフ サイクルについて説明し、コード例を示します。Studio および Studio セッション全般の詳細については、Studio のよくある質問をご覧ください。
すべてのエンドポイントに適用されるリージョン固有のベース URL があります。
たとえば、米国のhttps://api.bluebeam.com/publicapi/v1/sessions は、オーストラリアではhttps://api.bluebeamstudio.com.au/publicapi/v1/sessionsになります。
Studio セッションのライフサイクル
Studio セッションのライフサイクルは 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リクエストでは、ヘッダーに次の内容を含めます。
-
値が
"AES256"の"x-amz-server-side-encryption" -
値が
"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",
"メッセージ":"このセッションに参加して、Pied Piper買収についてのドキュメントをレビューしてください。"
}' \
-X POST
レスポンス
成功した場合、 204応答が返されます。エラーについては、 認証ガイド の下部にある 一般的な HTML 応答コードを 参照してください。
または
この方法は、メール アドレスがすでに Studio アカウントに関連付けられていることがわかっていて、オプトインせずに Studio セッションに追加したい場合に最適です。ユーザーがアカウントを持っていない場合、またはアカウントを持っているかどうか不明な場合は、 「方法 A: ユーザーを招待する」を使用します。方法 B: ユーザーの追加 を使用すると、ユーザーが Studio セッションの出席者に追加され、Revu インターフェースの Studio タブ内の出席者セッションの下に 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 '{
"メール": "peter.gregory@raviga.com",
"SendEmail": true,
"メッセージ": "リクエストに応じて、こちらが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 コンテンツとマークアップ レイヤーを 1 つの 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