たとえば、デベロッパー 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
推奨事項
- トークンの有効期間は短くしてください。
- ダッシュボードでの トークンが無効です。