cron ジョブで実行し、新しいテーブルを Google Maps Engine にプッシュするプログラムを作成しようとしています。
しばらく OAuth をいじった後、Google Compute Engine (GCE) VM を認証して、毎回ログインしなくてもセットリスト API にアクセスできることを知りました。これは素晴らしい解決策のように思えたので、いじり始めました。
すべてが適切に設定されていると思いますが、マシンから読み取りまたは書き込み要求を行うことができないため、何か不足しているに違いありません。この呼び出しでマシンをインスタンス化しました:
gcloud compute instances create <INSTANCE_NAME> --scopes https://www.googleapis.com/auth/mapsengine
そして、上記のリンク先のドキュメント ページ (metadata/computeMetadata/v1 ......) で概説されているリクエストを作成して、トークンをリクエストしています。
しかし、Maps Engine API にリクエストを送信すると、(呼び出しの内容によっては) リーダー/ライター アクセス権がないというエラーが表示されます。
VM をインスタンス化するとき、Maps Engine API へのアクセスを含む正しい開発者コンソール プロジェクトをアクティブにして実行しました。
問題は、すべて同じ Google アカウントにあるにもかかわらず、開発者プロジェクトが何らかの形で Maps Engine アカウントを認識していないことにあると思います。これを考える理由は、アクティブな Maps Engine プロジェクトを読み込もうとしたときに結果が返されない (0 のように) ためです。そのリクエストは通過しますが、空の状態で返されます。しかし、特定のマップに関する詳細を要求すると、noReaderAccess エラーが発生します。
助けてくれてありがとう。
EDIT この方法で Maps Engine API を認証することはできませんか? このページの下部にエイリアス スコープのリストがありましたが、残りのスコープ API にはエイリアスがないことがわかりました。これらがサポートされている唯一の API であるというのは本当ですか?