ユーザーは、コミュニティ コネクタを使用して独自のデータソースを作成します。これらのデータソースの場合、コネクタは有効なユーザーの ID にアクセスできます。データソースの認証情報に応じて、有効なユーザーはデータソース作成者(オーナーの認証情報)またはレポート閲覧者(閲覧者の認証情報)になります。
利点
- ユーザーに代わって Google サービスと API にアクセスできます。
- カスタムのアクセス制御を実装して、関連データのみが表示されるようにできます。
- 有効なユーザーのユーザー エクスペリエンスをカスタマイズできます。
実装の手順
ユーザー OAuth トークンへのアクセス
コネクタは、ユーザーの OAuth トークンを渡すことにより、ユーザーに代わって Google サービスと API にアクセスできます。コネクタで有効なユーザーの OAuth トークンにアクセスするには、ScriptApp.getOAuthToken()
を使用します。getOAuthToken リファレンスをご覧ください。このトークンには、コネクタの承認時に含まれる認可スコープが含まれます。
ほとんどのコネクタの場合、Apps Script によりスクリプトが解析および処理されて、必要なスコープが自動的に検出されます。コネクタにより使用されるスコープはいつでも確認できます。URL 文字列を使用して、マニフェストでスコープを明示的に設定することもできます。ユーザーの代わりに Google サービスまたは API にアクセスする場合は、マニフェストにその関連スコープを含めます。
ユーザーのメールアドレスへのアクセス
コードでは、Session.getEffectiveUser().getEmail()
を使用して現在の有効なユーザーを特定できます。getEffectiveUser リファレンスをご覧ください。このコードを追加すると、https://www.googleapis.com/auth/userinfo.email
認可スコープがコネクタに自動的に追加されます。
例: ユーザー OAuth トークンを使用して Google API を呼び出す
- Google Fit コネクタを使って、Google Fit API から有効なユーザーのデータを取得します。API の呼び出し中に、有効なユーザーの OAuth トークンが渡されます。実装の詳細については、ソースコードをご覧ください。
- Firestore コネクタでは、Cloud Resource Manager を使用して、有効なユーザーのプロジェクトのリストを取得します。このコネクタにより、有効なユーザーの OAuth トークンも渡されます。実装の詳細については、ソースコードをご覧ください。
例: メールアドレスに基づく isAdminUser()
- Chrome UX コネクタを使って、管理ユーザーのリストを管理します。
getEffectiveUser()
を使用して、有効なユーザーをリストと比較し、有効なユーザーが管理者かどうかを判断します。getEffectiveUser
の実装をご覧ください。