API Managerでサーバーキーを生成し、Macで次を実行しようとしました。
curl 'https://sheets.googleapis.com/v4/spreadsheets/MySheetID?ranges=A1:B5&key=TheServerKeyIGeneratedInAPIManager'
しかし、これはそれが返すものです:
{
"error": {
"code": 403,
"message": "The caller does not have permission",
"status": "PERMISSION_DENIED"
}
}
ここで何が間違っていますか?
この問題を解決するには、次を試してください。
それは私のために働いた:)
私は答えるのが少し遅れていることを知っていますが、同じ問題に苦しんでいる他の人々にとっては。
Just シートの許可をパブリックに変更ドライブ上で、API呼び出しによる認証なしでアクセスできるようにします。
アクセスを変更するには:
APIリクエストを送信して、認証なしでシートからデータを取得します。
注:シートに機密データが含まれている場合、それを公開して、認証されたアクセスで行うことは安全ではありません。
@KishanPatelのコメントに注意してください:
また、このシートを特定のメールで共有できます。サービスアカウント(プロジェクト)メール。 「client_email」:「[email protected]」、これにより、スクリプトからシートにアクセスできます。
最も簡単な方法は、gcloud cliを使用して修正することです。その他のドキュメントはこちら https://cloud.google.com/pubsub/docs/quickstart-cli#before-you-begin
gcloudをインストールする
Sudo apt-get install google-cloud-sdk
それから電話する
gcloud init
次に、アクティブなプロジェクトと資格情報を確認します
gcloud config configurations list
うまくいかない場合は、正しいアカウントで認証されていることを確認してください。
gcloud auth list
* account 1
account 2
そうでない場合は、プロジェクトのアカウントに変更します。
gcloud config set account `ACCOUNT`
アカウントに応じて、プロジェクトリストは異なります。
gcloud projects list
- project 1
- project 2...
目的のプロジェクトに切り替えます。
gcloud config set project `PROJECT NAME`
次に、gcloud auth application-default login
を使用してアプリケーションのデフォルト認証情報を作成すると、google-cloudはそのような認証情報を自動的に検出します。