13

サービス アカウントを使用して、Apps Script Execution API経由で Google スプレッドシートにアクセスしたいのですが、これがサポートされているかどうかがドキュメントから明らかではありません。

私が試した手順 (実行 API から 403 ステータスになる) は次のとおりです。

  1. 新しい (バインドされていない) Apps Script を作成する
  2. リンクされた開発者コンソール プロジェクトにアクセスします
  3. 実行 API を有効にする
  4. 同じプロジェクト内に新しいサービス アカウントを作成します (生成された JSON ファイルをダウンロードします)。
  5. 新しい Google スプレッドシートを作成し、それをサービス アカウントのメール アドレスと共有します (これは、私が最も確信が持てない手順です) 。
  6. スプレッドシートから読み取るアプリ スクリプト関数を作成する
  7. スクリプト エディターからスクリプトを手動で実行します (スクリプトのスコープを正しく設定するため)。
  8. スクリプトを公開し (「API 実行可能ファイルとしてデプロイ」)、「誰でも」アクセスできるようにします。
  9. サービス アカウントとスクリプトにリンクされたスコープを使用して、新しい OAuth2 トークンを作成します (この場合は「https://www.googleapis.com/auth/spreadsheets」のみ) 。
  10. トークンを使用して実行 API の呼び出しを試みます

これは私が得た応答です:

{
  "error": {
    "code": 403,
    "message": "The caller does not have permission",
    "status": "PERMISSION_DENIED"
  }
}

サービス アカウントは実行 API にアクセスできないため、これは機能しませんか? それとも、上記の手順に何か問題がありますか?

4

3 に答える 3