サービス アカウントを使用して、Apps Script Execution API経由で Google スプレッドシートにアクセスしたいのですが、これがサポートされているかどうかがドキュメントから明らかではありません。
私が試した手順 (実行 API から 403 ステータスになる) は次のとおりです。
- 新しい (バインドされていない) Apps Script を作成する
- リンクされた開発者コンソール プロジェクトにアクセスします
- 実行 API を有効にする
- 同じプロジェクト内に新しいサービス アカウントを作成します (生成された JSON ファイルをダウンロードします)。
- 新しい Google スプレッドシートを作成し、それをサービス アカウントのメール アドレスと共有します (これは、私が最も確信が持てない手順です) 。
- スプレッドシートから読み取るアプリ スクリプト関数を作成する
- スクリプト エディターからスクリプトを手動で実行します (スクリプトのスコープを正しく設定するため)。
- スクリプトを公開し (「API 実行可能ファイルとしてデプロイ」)、「誰でも」アクセスできるようにします。
- サービス アカウントとスクリプトにリンクされたスコープを使用して、新しい OAuth2 トークンを作成します (この場合は「https://www.googleapis.com/auth/spreadsheets」のみ) 。
- トークンを使用して実行 API の呼び出しを試みます
これは私が得た応答です:
{
"error": {
"code": 403,
"message": "The caller does not have permission",
"status": "PERMISSION_DENIED"
}
}
サービス アカウントは実行 API にアクセスできないため、これは機能しませんか? それとも、上記の手順に何か問題がありますか?