メインコンテンツまでスキップ
waffle.svg
Domo Knowledge Base

Domo Embed(ベータ版)でプログラムによるフィルターを使用する

Version 1

 

はじめに

Domo Embedでプログラムによるフィルターを使用すると、パーソナライズしたコンテンツをポータルとソフトウェアで大規模に配布できます。Domoのコンテンツを、Domoアカウントを所有していない閲覧ユーザーを含む、無制限の数の閲覧ユーザーと共有できます。 

プログラムによるフィルターを使用すると、以下のことができます。

  • 閲覧ユーザーには承認済みの関連コンテンツのみを表示する。 

  • 管理するPDPポリシー数を削減する。

  • Domoのフルユーザーでない閲覧ユーザーもエンベッドされたコンテンツの閲覧を可能にする。

  • 閲覧ユーザーがフルインスタンスにログインするリスクを低減する。

フィルターは、Domo Data Permissionポリシーではなく、ご利用のシステムのログイン認証情報に基づき、コードで定義されます。これにより、アイデンティティプロバイダの統合やDomoユーザープロビジョニングの自動化を選択しなかった場合においても、閲覧ユーザーに対しては許可されたデータサブセットのみが表示されます。

以下に例を示します。ユーザーのマイクがユーザー名とパスワードを使用して自社のウェブサイトにログインすると、マイクのログイン認証情報に基づきフィルターされた自社データのビューが表示されます。

programmatic_filtering_example.png

ヒント: DomoのJavaScript APIを使用すると、同じページ上の複数のiFramesで同じドロップダウンコントロールを利用することもできます。APIの使用方法の詳細については、developer.domo.comを参照してください。 

プログラムによるフィルターの例を設定する

プログラムによるフィルターの例を設定するには、以下のステップに従います。

  1.  https://github.com/domoinc/domo-node-embed-filtersからコードの例をダウンロードします。  

  2. 以下を実行してAPIクライアントをアクティベートします。

    1. https://developer.domo.comに移動してログインします(アカウントがない場合は作成します)。

    2.  [マイアカウント] > [新規クライアント] の順に選択します。 

    3. フィールドへの入力を行います。 

      programmatic_filtering_create_new_client.png

  3. README.mdファイルをテキストエディターで開きます。 

  4. ファイルの説明に従います。

    readmeファイルでは、 以下のタスクについて説明しています。

    • DataSetの例を作成する。

    • 各カードにおいて特定のエンベッドIDを使用して.env fileをカスタマイズする。

    • お使いのマシンでこの例の設定をライブテストする。 

お使いの環境でプログラムによるフィルターを設定し、構成する

以下の図では、どのようにサーバーがアクセストークン、エンベッドトークン、エンベッドIDをembed.jsファイルに収集するかを示しています。この図は、embed.jsファイルのサンプルコードの1~11行目に対応しています。図の最後に示しているように、プログラムによってカードをフィルターするページの実際のドメインで、customerserver.comのエントリーを更新する必要があります。 
 

programmatic_filtering_user_authenticates.png
 

次の図では、自動送信フォームを使って、変更されたカードをリクエストする方法を示しています。コードで定義されたロジックに基づき、ApiGateway(public.domo.com)からフィルターされたカードが返されます。この図は、embed.jsファイルの100~113行目に対応しています。 

programmatic_filtering_request_for_card.png
 

最後の図では、express.jsファイルの20~26行目に対応する「カード情報のリクエスト」セクションを示しています。ここでは、プログラムによるフィルターの中核を成す基準が定義されます。 
 

programmatic_filtering_request_for_card_info.png
 

コードの開発者は、基盤となるDataSetのスキーマを理解することが不可欠です。理解していない場合、クエリは失敗に終わり、APIが「Bad request」を返す可能性があります。これは、サーバー側フィルターのセキュリティを確保するためです。