たとえば、デベロッパー X がクライアント用のウェブ アプリケーションを提供しているとします。 クライアントが自身の認証情報を使用してアプリにログインし、販売データを表示できる 提供しますクライアントがアクセスできる店舗のリストは、一人ひとり異なります。「 アプリケーションに Looker Studio ダッシュボードを埋め込んで、 クライアントがログインすると、店舗の販売データのみが表示されるようになる。 できます。このプロセスは、クライアントが Google アカウントにログインしていなくても機能します。
下記の解決方法では、デベロッパーはコミュニティ コネクタを作成し、埋め込み URL を介してトークンを渡し、そのトークンに基づいてデータをフィルタします。
要件
- ダッシュボードの閲覧者は、サードパーティ製アプリにログインする必要があります。
- アプリケーションから Looker Studio ダッシュボードに一意のトークンを渡す 埋め込み URL を使って取得します。トークンは、フィルタ情報の検索に使用できます。 フィルタ情報を暗号化することもできます
- コミュニティ コネクタは、トークンをフィルタ値に変換できなければなりません。
制限事項
- G Suite をご利用で、管理者が共有を無効にしている場合 ドライブのファイルを [リンクを知っている全員] に設定すると、 送信することもできます。
解決策
この解決方法を実装するには、以下のすべての手順を行ってください。
ウェブアプリでユーザー トークンを生成する
ウェブ アプリケーションで、ログイン ユーザーごとに一意のトークンを生成します。 このトークンは、後のステップで埋め込みダッシュボードに渡します。
トークンは、関連データのフィルタリングに使用されます。次のオプションがあります。
- フィルタされたデータまたはユーザー情報を返す API エンドポイントを作成する 検索します。
- 後で復号できるようにトークン内のユーザー情報を暗号化する 指定します。
新しいコミュニティ コネクタを作成する
コミュニティ コネクタの仕組みを確認し、完了 コミュニティ コネクタの Codelab をご覧ください。こちらの コネクタ作成用のローカル開発ツールにより、より迅速かつ簡単にコネクタを作成 開発プロセスに集中できます。
コネクタコードを記述する
getConfig()
は、少なくとも 1 つの設定項目を返します。このメソッドを使用して、埋め込み URL のパラメータからトークンを取得します。function getConfig(request) { var cc = DataStudioApp.createCommunityConnector(); var config = cc.getConfig(); config .newTextInput() .setId('token') .setName('Enter user token'); // TODO: Add additional config values if applicable for your connector config.setDateRangeRequired(false); config.setIsSteppedConfig(false); return config.build(); }
getData()
は、request.configParams
オブジェクト。トークンを使用してフィルタされたデータを取得するか、 取得済みの既存のデータをフィルタする
上記の例では、トークンは次のようになります。request.configParams.token
。getData()
では、トークンが REST に渡されます。 店舗 ID のリストを取得するための API エンドポイント。これらの店舗 ID を使用して、 販売データを取得する SQL クエリを作成します。var STORE_ID_API = 'https://www.example.com/api/storeid'; var QUERY_STRING_PREFIX = "SELECT StoreName, Sales from stores" function getData(request) { var token = request.configParams.token; var storeIds = getStoreIdList(token); var queryString = constructQueryString(storeIds); var fetchedData = fetchData(queryString); // rest of getData() implementation } function getStoreIdList(token) { var url = STORE_ID_API; var response = UrlFetchApp.fetch(url); var parsedResponse = JSON.parse(response); return parsedResponse.storeIds; } function constructQueryString(storeIds) { var storeIdString = storeIds.join(','); var queryString = QUERY_STRING_PREFIX + ' WHERE storeId in (' + storeIdString + ')'; return queryString; }
ダッシュボードを作成する
- コネクタのデプロイとバージョンの仕組みを理解します。
- コネクタの本番環境デプロイを作成します。
- 本番環境デプロイのリンクを使用して、 Looker Studio です
token
構成パラメータの場合: レポートの閲覧者がパラメータ値を変更できるようにする。- 選択したユーザーまたは「リンクを知っている全員」とダッシュボードを共有します。
- レポートの埋め込みを有効にします。
ダッシュボードをプラットフォームに埋め込む
- レポートの URL パラメータの仕組みを確認します。
- URL パラメータを使用して動的に生成されたトークン値を
埋め込みの Looker Studio レポートです
埋め込み URL は次のようになります。
`https://lookerstudio.google.com/embed/reporting/REPORT_ID/page/PAGE_ID?config=%7B%22ds0%22%3A%7B%22token%22%3A%22TOKEN_VALUE%22%7D%7D
推奨事項
- トークンの有効期間は短くしてください。
- ダッシュボードでの トークンが無効です。