メインコンテンツまでスキップ

GSuite Application Scope 用 Google Workspace セットアップガイド

このガイドでは、akaBot の GSuiteApplicationScope に Google Workspace 認証を設定する方法について説明します。

このアクティビティは以下の Google サービスをサポートしています:

akaBot サービスカバーされるアクティビティ
GmailSendEmail、GetMailMessages、ChangeLabels
Driveアップロード、ダウンロード、コピー、移動、削除、検索、ファイル情報、フォルダ、権限アクティビティ
Sheetsセル、範囲、行、列、シート、スプレッドシート操作の読み取り/書き込み

1. アプリ: Google Cloud プロジェクトの作成または選択​

  1. Google Cloud Console にアクセスします。
  2. プロジェクトを所有する Google アカウントまたは Workspace 管理者アカウントでサインインします。
  3. 新しいプロジェクトを作成するか、既存のプロジェクトを選択します。
  4. このプロジェクトが akaBot GSuiteApplicationScope に使用されることを確認します。

Google Cloud プロジェクトセレクタ

2. APIs & Services: アクティビティ用の API を有効化​

  1. Google Cloud Console で以下を開きます:

    APIs & Services -> Enable APIs and Services
  2. akaBot アクティビティに必要な API サービスを検索して有効化します。

akaBot アクティビティグループ有効化する API
Gmail アクティビティGmail API
Drive アクティビティGoogle Drive API
Sheets アクティビティGoogle Sheets API

APIs and Services を有効化

Gmail API

3. OAuth 同意画面​

  1. Google Cloud Console で以下を開きます:

    APIs & Services -> OAuth consent screen
  2. ユーザータイプを選択します。

ユーザータイプ用途
Internal(内部)Google Workspace ドメイン内のユーザーのみがアプリを使用する場合
External(外部)Google Workspace ドメイン外のユーザーがアプリを使用する場合
  1. 必要なアプリ情報を入力します:

    アプリ名
    ユーザーサポートメール
    開発者連絡先メール
    認可されたドメイン(必要に応じて)
    プライバシーポリシー URL(必要に応じて)
  2. 現在の GSuiteApplicationScope で使用するスコープを追加します。

    https://mail.google.com/
    https://www.googleapis.com/auth/drive
    https://www.googleapis.com/auth/spreadsheets
    https://www.googleapis.com/auth/drive.file
スコープ対象範囲
https://mail.google.com/Gmail の送信、読み取り、ラベル付けアクティビティ
https://www.googleapis.com/auth/driveDrive ファイル、フォルダ、検索、権限アクティビティ
https://www.googleapis.com/auth/spreadsheetsSheets の読み取り、書き込み、更新アクティビティ
https://www.googleapis.com/auth/drive.fileアプリで使用される特定の Drive ファイル
注記

https://mail.google.com/ と https://www.googleapis.com/auth/drive は広いスコープまたは制限されたスコープです。内部 Workspace アプリの場合、Google の確認は通常不要です。外部またはパブリックアプリの場合、Google は OAuth 確認とセキュリティ評価を要求する場合があります。

4. 認証タイプ別セットアップ​

4.1 OAuth クライアント ID​

ユーザーが対話的にサインインして同意を付与する場合、このオプションを使用します。

Google Cloud セットアップ​

  1. 以下にアクセスします:

    APIs & Services -> Credentials
  2. 以下をクリックします:

    Create Credentials -> OAuth client ID
  3. アプリケーションタイプを選択します。akaBot デスクトップワークフローの場合、以下を使用します:

    Desktop app
  4. 認証情報を作成します。

  5. 生成された値をコピーします:

    Client ID
    Client Secret

OAuth クライアント ID を作成

OAuth クライアント認証情報

akaBot GSuiteApplicationScope セットアップ​

以下を設定します:

AuthenticationType = OAuthClientID
CredentialID = <Client ID>
CredentialSecret = <Client Secret>
Services = Gmail / Drive / Sheets
User = optional token cache user name

ワークフロー実行時に Google サインインが開き、トークンは以下に保存されます:

Datastore.GSuite

4.2 サービスアカウントキー​

サービスアカウントと直接共有されている Drive または Sheets ファイルを使用した自動実行の場合、このオプションを使用します。

Google Cloud セットアップ​

  1. 以下にアクセスします:

    APIs & Services -> Credentials
  2. 以下をクリックします:

    Create Credentials -> Service account
  3. サービスアカウントを作成します。

  4. サービスアカウントを開きます。

  5. Keys に移動します。

  6. 以下をクリックします:

    Add Key -> Create new key -> JSON
  7. JSON キーファイルをダウンロードします。

サービスアカウントを作成

JSON サービスアカウントキーを作成

akaBot GSuiteApplicationScope セットアップ​

以下を設定します:

AuthenticationType = ServiceAccountKey
KeyType = JSON
KeyPath = <path to JSON key>
HasDomainWideAccesss = false
Services = Drive / Sheets
注記

ドメイン全体委譲が有効でない限り、Gmail はサービスアカウント認証では動作しません。

4.3 ドメイン全体委譲を伴うサービスアカウントキー​

Workspace 全体の自動化、特に Gmail をサービスアカウント認証で使用する場合、このオプションを使用します。

Google Cloud セットアップ​

  1. サービスアカウントを開きます。
  2. Advanced settings を展開します。
  3. 数値の Client ID をコピーします。

Google Admin セットアップ​

  1. Google Admin Console にアクセスします。

  2. スーパー管理者としてサインインします。

  3. 以下を開きます:

    Security -> Access and data control -> API controls
  4. 以下をクリックします:

    Manage Domain Wide Delegation
  5. Add new をクリックします。

  6. サービスアカウントの数値 Client ID を貼り付けます。

  7. スコープをコンマ区切りリストとして追加します:

    https://mail.google.com/,https://www.googleapis.com/auth/drive,https://www.googleapis.com/auth/spreadsheets,https://www.googleapis.com/auth/drive.file
  8. Authorize をクリックします。

変更は最大 24 時間かかる場合がありますが、通常はより早く完了します。

akaBot GSuiteApplicationScope セットアップ​

以下を設定します:

AuthenticationType = ServiceAccountKey
KeyType = JSON
KeyPath = <path to JSON key>
HasDomainWideAccesss = true
UserEmail = <workspace-user@company.com>
Services = Gmail / Drive / Sheets

UserEmail は Google Workspace ドメイン内の実際のユーザーである必要があります。サービスアカウントは Google API を呼び出すときにこのユーザーを偽装します。

4.4 API キー​

このオプションは限定的またはパブリック API シナリオにのみ使用します。

important

現在の akaBot コードでは、Gmail と Drive の API キー認証はブロックされています。API キーは限定的な Sheets またはパブリックデータシナリオにのみ使用してください。

Google Cloud セットアップ​

  1. 以下にアクセスします:

    APIs & Services -> Credentials
  2. 以下をクリックします:

    Create Credentials -> API key
  3. 生成された API キーをコピーします。

API キーを作成

akaBot GSuiteApplicationScope セットアップ​

以下を設定します:

AuthenticationType = ApiKey
ApiKey = <API key>
Services = Sheets

推奨セットアップ​

シナリオ推奨される認証タイプ
ユーザーがサインインして同意を付与するOAuth クライアント ID
内部の無人 Drive または Sheets 自動化サービスアカウントキー
Gmail を含む内部 Workspace 全体の自動化ドメイン全体委譲を伴うサービスアカウントキー
パブリックまたは限定的なデータのみAPI キー

公式リファレンス​