Google Spreadsheetsの接続情報
    • PDF

    Google Spreadsheetsの接続情報

    • PDF

    記事の要約

    概要

    Google Spreadsheetsの接続情報を設定する際のヘルプページとなります。

    TROCCOでGoogle Spreadsheetsの接続情報を設定する方法は、Googleアカウントを利用する方法とサービスアカウントを利用する方法の2種類があります。

    転送前の準備

    サービスアカウントを利用する場合は、以下の作業が必要です。

    • JSON Keyを設定
    • APIを有効化
    • 転送元・転送先スプレッドシートの共有設定で、サービスアカウントのメールアドレスに権限を付与

    JSON Keyを設定

    1. Google CloudのJSON Keyを取得するを参照して、JSON Keyを取得してください。サービスアカウントにロールを付与する必要はありません。

    2. サービスアカウントのメールアドレスをメモしておきます。

    3. 取得したJSON Keyの内容をすべてコピーし、TROCCOの接続設定作成画面のJSON Keyフォームにペーストします。

    APIを有効化

    1. GCP Consoleにアクセスし、プロジェクトを選択します。
      (プロジェクトを作成していない場合は事前に作成してください。)

    2. APIライブラリにアクセスします。

    3. Google Sheets APIをクリックします。

    image.png

    1. APIを有効化します。

    image.png

    転送元・転送先スプレッドシートの共有設定で、サービスアカウントのメールアドレスに権限を付与

    1. 最後に、転送元・転送先となるスプレッドシートを開きます。

    2. 画面右上の共有を開きます。

    3. ユーザーの入力欄に、サービスアカウントのメールアドレスをペーストします。

    4. 右側にある権限の選択欄で、必要な権限を選択します。
      (転送元の場合は閲覧者、転送先の場合は書き込み権限を持つ編集者を選択してください。)

    参考:公式ドキュメント

    トラブルシューティング

    リクエストに必要な認証スコープが不足しているため接続に失敗

    Error: java.lang.RuntimeException: com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden
    GET https://sheets.googleapis.com/v4/spreadsheets/*****
    {
      "code" : 403,
      "errors" : [ {
        "domain" : "global",
        "message" : "Insufficient Permission",
        "reason" : "insufficientPermissions"
      } ],
      "message" : "Request had insufficient authentication scopes.",
      "status" : "PERMISSION_DENIED",
      "details" : [ {
        "@type" : "type.googleapis.com/google.rpc.ErrorInfo",
        "reason" : "ACCESS_TOKEN_SCOPE_INSUFFICIENT",
        "domain" : "googleapis.com",
        "metadata" : {
          "service" : "sheets.googleapis.com",
          "method" : "google.apps.sheets.v4.SpreadsheetsService.GetSpreadsheet"
        }
      } ]
    }
    

    考えられる原因

    • OAuth認証時に、TROCCOに対して必要なアクセス権が許可されていなかった可能性があります。

    対処法

    • Googleアカウント再認証を行い、「Google スプレッドシートのすべてのスプレッドシートの参照、編集、作成、削除」にチェックを入れてから許可してください。

    呼び出し元に権限がないため接続に失敗

    Error: Google::Apis::ClientError, Message: forbidden: The caller does not have permission, StatusCode: 403, Body: {
      "error": {
        "code": 403,
        "message": "The caller does not have permission",
        "errors": [
          {
            "message": "The caller does not have permission",
            "domain": "global",
            "reason": "forbidden"
          }
        ],
        "status": "PERMISSION_DENIED"
      }
    }
    

    考えられる原因

    • スプレッドシートへのアクセスに必要な権限が付与されていない可能性があります。

    対処法

    • 転送元の場合、Googleアカウントまたはサービスアカウントに対して、スプレッドシートに閲覧権限が付与されているか確認してください。
    • 転送先の場合、Googleアカウントまたはサービスアカウントに対して、スプレッドシートに編集権限が付与されているか確認してください。

    この記事は役に立ちましたか?