Box Developerドキュメント

コンテンツエクスプローラ - メタデータビュー

ガイド Boxの埋め込み UI Element コンテンツエクスプローラ - メタデータビュー

コンテンツエクスプローラ - メタデータビュー

コンテンツエクスプローラを使用すると、メタデータに基づいてファイルを表示することもできます。メタデータビューでは、メタデータテンプレートメタデータクエリを使用して、表示するデータを探します。

メタデータビュー

前提条件

アプリの作成と構成

  1. Boxアプリを作成します
  2. [CORSドメイン] にローカルでの開発用のアドレスを追加します。 CORSドメイン
  3. 開発者トークンを生成します。

メタデータテンプレートの作成

次の手順では、メタデータテンプレートを作成します。

  1. メタデータAPIまたは管理コンソールを使用してテンプレートを作成します。
  2. すでに作成済みのテンプレートをBoxフォルダに適用します。必ずカスケードポリシーを有効にするようにしてください。詳細な手順については、テンプレートのカスタマイズと適用の手順を参照してください。

メタデータテンプレートは、ファイルにも適用できます。

表示名と主なパラメータ

  • displayNameパラメータは、管理コンソールに表示されるテンプレートの表示名です。
  • templateKeyパラメータは、テンプレートの一意の識別子です。これは、メタデータテンプレート作成の対象となる企業全体で一意である必要があります。templateKeyパラメータを指定しなかった場合は、APIによって、displayNameの値を基に一意の識別子が作成されます。
  • [fields].displayNameパラメータは、ウェブアプリおよびモバイルアプリでユーザーに表示されるフィールドの表示名です。
  • [fields].keyパラメータは、テンプレート内の特定のフィールドの一意の識別子です。この識別子は、そのフィールドが属するテンプレート内で一意である必要があります。

メタデータビューの表示

次に、コンテンツエクスプローラに渡される必須のプロパティを入力します。作業を簡単にするために、基本的なReactアプリに基づいたサンプルプロジェクトを使用して、メタデータビューを起動できます。

  1. メタデータのサンプルプロジェクトを複製します。
  2. App.js内のプレースホルダを実際の値で更新します。
パラメータ説明
DEVELOPER_TOKEN開発者コンソールで生成された開発者トークン
ENTERPRISE_IDBoxアプリケーションの [一般設定] タブからコピーしたEnterprise ID。
METADATA_TEMPLATE_NAME作成済みのメタデータテンプレートのtemplateKey: 適切な名前を指定済みであることを確認するには、メタデータAPIを使用して名前を取得するか、管理コンソールでURLから名前をコピーします。 管理コンソールにおけるメタデータ名 UIでテンプレート名を変更しても、変更されるのは表示名のみです。コンポーネントで使用する名前は、常に最初に指定した名前になります。
METADATA_SOURCEメタデータのソース。これは、スコープ、Enterprise ID、メタデータキーを組み合わせた文字列です。
ROOTFOLDER_IDメタデータクエリを適用してフィルタがかけられたファイルを表示するBoxフォルダのID。

defaultViewfieldsToShowmetadataQueryの各パラメータは、すでにサンプルプロジェクトで定義されています。これらのパラメータの例は、サンプルプロジェクトで確認できます。

パラメータ説明
defaultViewメタデータビューを描画するための必須プロパティ。指定されていない場合は、通常のファイルビューが表示されます。
fieldsToShowコンテンツエクスプローラに表示する特定のメタデータ列を追加または非表示にします。
metadataQueryファイルに設定されているメタデータを検索してそのファイルを探す方法を指定します。メタデータクエリの詳細については、こちらのガイドを参照してください。
  1. コンテンツエクスプローラコンポーネントに必須パラメータを渡します。

コンテンツエクスプローラのメタデータビューを含むReactコンポーネントのサンプルコードは次のようになります。

function App() {
    const token = "<DEVELOPER_TOKEN>";
    const rootFolderID = "<ROOTFOLDER_ID>";
    const EID = "<ENTERPRISE_ID>";
    const templateName = "<METADATA_TEMPLATE_NAME>";
    const metadataSource = `enterprise_${EID}.${templateName}`;
    const metadataSourceFieldName = `metadata.${metadataSource}`;
    const metadataQuery = {
    	from: metadataSource,
    	query: "key = :arg1",
    	query_params: { arg1: "value" },
    	ancestor_folder_id: 0,
    	fields: [
        `${metadataSourceFieldName}.name`,
        `${metadataSourceFieldName}.last_contacted_at`,
        `${metadataSourceFieldName}.industry`,
        `${metadataSourceFieldName}.role`,
        ],
    };

    const fieldsToShow = [
    // canEdit propetry determines if the user can edit the metadata directly from Content Explorer component
    { key: `${metadataSourceFieldName}.name`, canEdit: false },
    // displayName alows to change the label on metadata column
    { key: `${metadataSourceFieldName}.industry`, canEdit: false, displayName: "alias" },
    { key: `${metadataSourceFieldName}.last_contacted_at`, canEdit: true },
    { key: `${metadataSourceFieldName}.role`, canEdit: true },
    ];

const defaultView = "metadata";
return (
    <IntlProvider locale="en">
        <div className="App">
            <header className="App-header">
                <h2>Metadata view in Content Explorer</h2>
            </header>
            <section>
                <div className="metadata-based-view">
                    <ContentExplorer
                        rootFolderId={rootFolderID}
                        token={token}
                        metadataQuery={metadataQuery}
                        fieldsToShow={fieldsToShow}
                        defaultView={defaultView}
                    />
                </div>
            </section>
        </div>
    </IntlProvider>
);
}

export default App;

メタデータキー

表示するフィールドを決定するには、メタデータのコンテンツエクスプローラで、表示名ではなく、メタデータのフィールドキーを使用します。表示名は管理コンソールやユーザービューで確認できる一方、フィールドキーはAPIを使用して取得できます。

フィールドキーは、メタデータの表示名を変更した場合でも変わりません。これにより、UIビューでメタデータが変更されても、この機能は正常に動作します。

メタデータキーのサニタイズ

キーは、英数字のみに制限されています。

  • ハイフン-とアンダースコア_は許可されていません。
  • 許可されているのは文字 (a-z, A-Z) と数字 (0-9) のみです。

ラテン語以外の文字:

キーにラテン語以外のアルファベット (キリル文字、アラビア語、中国語など) が含まれている場合、それらは自動的に共通識別子に変更されます。

  • 最初に出現した文字はfield
  • それ以降出現した文字はfield1field2と続く

キーは、表示名に基づいています。

ヒント: 詳細なフローについては、メタデータビューに関するブログ記事を参照してください。