前提・実現したいこと
GoogleDataPotal (GoogleDataStudio)上でユーザーに入力させたClient情報でコミュニティコネクタのOAuth2.0認証をしたい
発生している問題・エラーメッセージ
初心者です。
Googleのドキュメントを参考に、APIをOAuth2.0認証を通して、GoogleDataPotalにデータを表示させることができました。
ただ、ドキュメントの方法ではGoogleAppsScript上のコード(getOAuthService)にClient情報を直打ちしています。
これをより汎用性を上げるために、Client情報をGoogleDataPotal上で項目に入力させるgetConfigで設定し、入力させたClient情報でOAuth2.0認証をしたいです。
ただ認証の手順的にgetConfigで設定した項目に入力させる前に、Client情報を使って認証画面を表示させていると考えており、ソースコードで示すような改変をしても、当然ですが認証画面を表示させることができません。
そこでそもそも実現したいことが可能なのか、可能であるならば解決方法(コードの改変、もしくは外部サービスでGoogleAppsScript上のgetOAuthServiceにClient情報を反映させる方法など)を教えていただきたいです。
該当のソースコード
GoogleAppsScript
1var getOAuthService = function() { 2 return OAuth2.createService('...') 3 .setAuthorizationBaseUrl('...') 4 .setTokenUrl('...') 5 .setClientId(request.configParams.clientId) 6 .setClientSecret(request.configParams.clientSecret) 7 .setPropertyStore(PropertiesService.getUserProperties()) 8 .setCallbackFunction('authCallback') 9 .setScope('...'); 10};
GoogleAppsScript
1function getConfig() { 2 var config = cc.getConfig(); 3 4 config 5 .newInfo() 6 .setId('...') 7 .setText('...'); 8 9 config 10 .newTextInput() 11 .setId('...') 12 .setName('...') 13 .setHelpText('') 14 .setPlaceholder('...'); 15 16 config 17 .newTextInput() 18 .setId('clientId') 19 .setName('Client Id') 20 .setHelpText('Client Id'); 21 22 config 23 .newTextInput() 24 .setId('clientSecret') 25 .setName('Client Secret') 26 .setHelpText('Client Secret'); 27 28 config.setDateRangeRequired(true); 29 30 return config.build(); 31}
試したこと
- 以下のリンク先を参考に、認証なしのコミュニティコネクタの作成。
コミュニティ コネクタを使ってみる
Connect and visualize all your data in Data Studio
- 以下のリンク先を参考に、認証ありのコミュニティコネクタの作成。
- getConfigにClientIdとClientSecretの項目を追加し、getOAuthServiceのClientIdとClientSecretを直打ちする部分にrequest.configParams.clientIdとrequest.configParams.clientSecretを挿入。
→(認証画面を表示するのにClient情報が必要なので当然だが)DataPortalに必要なコネクタとの承認でエラーがでる。
補足情報
こちらの方はJavaScriptでコーディングされていますが、参考にさせていただきました。
意外と簡単!Google Data Studio のコネクタの作り方(Qiitaのデータを表示する)
あなたの回答
tips
プレビュー