ユーザー ID の使用

ユーザーは、コミュニティ コネクタを使用して独自のデータソースを作成します。作成されたデータソースでは、コネクタは有効なユーザーの 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 の実装をご覧ください。