Googleスプレッドシートに共有制限がかかっている場合、そのままだとGCPのサービスアカウントは読み込み出来ません。
その場合は、 サービスアカウントのメールアドレスをユーザとしてGoogleスプレッドシートに登録しましょう。
手順は以下の通り。
① Google Cloud Platform > IAMと管理 > サービスアカウントに移動し、サービスアカウントのメールアドレスをコピーします。
② 制限付きGoogleスプレッドシートに移動して、共有ボタンをクリックします。
③ あとは、コピーしたメールアドレスを登録すれば完了です。
これで、 制限付きGoogleスプレッドシートをサービスアカウントが読める様になります。
あ、もちろんサービスアカウントの権限は閲覧者以上にしておいてくださいね。
こんな記事も書いています。