Box Embed
Box Embed
Box EmbedはHTMLベースのフレームワークで、これにより、独自に作成したアプリケーションにBoxウェブアプリの機能全体を埋め込むことができます。Box Embedを使用すると、ファイルのアップロード、検索、コメント付け、共有、タグ付けに加え、Box Editを使用したファイルの編集も可能になります。
開始する前に
ウィジェットを作成するには、以下のことが必要です。
- 共有用の埋め込み可能な要素 (フォルダ、ファイル、Hubなど) を設定する。
- ビューアー以上の権限がある。
ウェブアプリの使用
BoxウェブアプリからBox埋め込みウィジェットのコードを取得するには、以下の手順を実行します。
ファイルとフォルダ
- 選択したファイルまたはフォルダに移動します。
- そのフォルダの横にある省略記号をクリックします。
- [その他の操作] > [埋め込みウィジェット] に移動します。
Hub
- 選択したHubに移動します。
- 右上にある省略記号メニューをクリックします。
- [Hubを埋め込む] をクリックします。
次の手順では、埋め込み可能な要素のパラメータを構成します。
ファイル | フォルダ | Hub |
---|---|---|
ウィジェットのサイズ | ウィジェットのサイズ、フォルダ内のファイルの並べ替え、ナビゲーションパスとサイドバーの非表示 | ウィジェットのサイズ、親のナビゲーションパスとサイドバーの非表示 |
埋め込みウィジェットのカスタマイズが完了したら、埋め込みコードをコピーして自分のサイトまたはウェブアプリに貼り付けます。
プログラムを使用して構成
Box Embedをさらにカスタマイズする場合は、プログラムを使用して実行できます。埋め込みのスニペットの形式は次のとおりです。
<iframe
src="https://{custom_domain}.app.box.com/embed/s/{shared link value}?view={list or icon}&sortColumn={name, date, or size}&sortDirection=ASC"
width="{pixels}"
height="{pixels}"
frameborder="0"
allowfullscreen
webkitallowfullscreen
msallowfullscreen
></iframe>
共有リンクの値の検索
プログラムを使用して埋め込みiframe
を構築するには、まず、共有リンクの値を生成または検索します。この値を検索する1つの方法として、Boxウェブアプリを使用します。
また、PUT /files/:file_id
またはPUT /files/:file_id
を使用して、APIで共有リンクを作成する方法もあります。
その後、GET /files/:id
またはGET /folders/:id
エンドポイントを使用してクエリパラメータfields=shared_link
を渡すことにより、この共有リンクの値を検索できます。
curl https://api.box.com/2.0/folders/12345?fields=shared_link \
-H "authorization: Bearer ACCESS_TOKEN"
"shared_link": {
"url": "https://app.box.com/s/dsbJFzdO7qZxdfOHFzdO7qZxdfOH",
"download_url": null,
"vanity_url": null,
...
}
ページをルートフォルダ/[すべてのファイル] ページに設定することもできます。URLを共有リンク<iframe src=“https://app.box.com/embed/folder/0”….></iframe>
ではなく/folder/0
に設定してください。
パラメータ
次に、表示のカスタマイズオプションを選択します。構成可能なパラメータ (省略可) のリストを以下に示します。
view | ファイルまたはフォルダの表示方法の種類。list (デフォルト) またはicon を指定できます。ログインユーザーの場合は、ユーザー設定の表示方法が優先されます。 |
sortColumn | ファイルまたはフォルダを並べ替える順番。name 、date (デフォルト)、または、size を指定できます。 |
sortDirection | ファイルまたはフォルダの並べ替えの方向。ASC (デフォルト) またはDESC を指定できます。 |
showParentPath | フレームのヘッダーにフォルダパスを非表示または表示します。true またはfalse (デフォルト) を指定できます。 |
showItemFeedActions | ファイルのコメントまたはタスクを非表示または表示します。true (デフォルト) またはfalse を指定できます。 |
hideHubsGallery | Hubsギャラリーに戻るためのナビゲーションの山括弧ボタンを非表示または表示します。true またはfalse (デフォルト) を指定できます。 |
uxLite | クラウド (雲) ゲームを使用せず、制限付きコンテンツプレビュー (Preview Light) を表示します。共有ファイルのみに有効です。 |
全画面表示機能
Box Embedスニペットの全画面表示機能を有効にするために、オブジェクトを全画面に表示可能にする場合は、以下のパラメータの1つ以上を<iframe>
に含めてください。
allowfullscreen
webkitallowfullscreen
mozallowfullscreen
oallowfullscreen
msallowfullscreen
有効期限付き埋め込みリンク
ファイルの場合、GET /files/:id
を呼び出し、fields
クエリパラメータを使用してexpiring_embed_link
をリクエストすることもできます。
curl https://api.box.com/2.0/files/12345?fields=expiring_embed_link \
-H "authorization: Bearer ACCESS_TOKEN"
{
"etag": "1",
"expiring_embed_link": {
"token": {
"access_token": "1!rFppcinUwwwDmB4G60nah7z...",
"expires_in": 3646,
"restricted_to": [
{
"object": {
"etag": "1",
"file_version": {
"id": "34567",
"sha1": "1b8cda4e52cb7b58b354d8da0068908ecfa4bd00",
"type": "file_version"
},
"id": "12345",
"name": "Image.png",
"sequence_id": "1",
"sha1": "1b8cda4e52cb7b58b354d8da0068908ecfa4bd00",
"type": "file"
},
"scope": "base_preview"
},
...
],
"token_type": "bearer"
},
"url": "https://cloud.app.box.com/preview/expiring_embed/...."
},
"id": "12345",
"type": "file"
}
url
属性を<iframe>
内で使用すると、自動で期限切れになるBox Embedインターフェースを埋め込むことができます。
<iframe
src="YOUR-GENERATED-BOX-EMBED-LINK"
width="{pixels}"
height="{pixels}"
frameborder="0"
allowfullscreen
webkitallowfullscreen
msallowfullscreen
/>
パラメータ
UIをカスタマイズするために、このURLにさらにパラメータを追加することもできます。そのためには、以下のパラメータをクエリパラメータとしてurl
に追加します。最終的なURLは、次のようになります。
https://app.box.com/preview/expiring_embed/[HASH]?[parameterName]=true
showDownload | ファイルをダウンロードするための権限がビューアーにある場合は、埋め込まれたヘッダーバーにダウンロードボタンが表示されます。また、印刷とダウンロードが同じ権限で管理されているため、ドキュメントのファイルタイプには印刷ボタンも表示されます。デフォルトではfalse になります。 |
showAnnotations | プレビュー以上の権限を持つユーザーは、ドキュメントと画像のプレビューに注釈を付けることができます。また、すでにドキュメントに付けられている注釈も表示されます。注釈が利用可能なファイルタイプおよび注釈の種類の詳細については、注釈ページを参照してください。現在、注釈はウェブブラウザでのみ使用できます。モバイルブラウザでは、ユーザーは注釈を表示できますが、新しい注釈を作成することはできません。 |
クラウド (雲) ゲーム
クラウド (雲) ゲームとは、クリックジャッキングを防ぐために作成されたウィジェットです。これは、パートナー統合ではない埋め込みサイトに表示されます。クラウド (雲) ゲームでは、ユーザーは、操作の許可を得るためにクラウド (雲) を適切な場所にドラッグする必要があります。このゲームでは、クラウド (雲) の位置とそのドラッグ先がランダムに生成されるため、クリックジャッキングが難しくなります。
postMessage()
は、埋め込みとshowCloudGame
両方のステータスを取得するためにiframeで使用されます。埋め込まれている場合、document.hasStorageAccess()
は、BoxからCookieにアクセスできるかどうかを示します。アクセスでき、ユーザーがログイン済みの場合、クラウド (雲) ゲームが表示されます。showCloudGame
のステータスがfalse
の場合、ユーザーはログインページに誘導されます。