BigQuery プロジェクトに関連付けられた AppEngine アカウントを持っていますが、クエリを実行しようとすると、応答で「アクセスが拒否されました」と表示されます。次のように AppIdentityCredential をセットアップしました。
private static AppIdentityCredential getCredential() throws IOException, GeneralSecurityException {
return new AppIdentityCredential(BigqueryScopes.BIGQUERY);
}
public static Bigquery createAuthorizedClient() throws IOException, GeneralSecurityException {
return new Bigquery(TRANSPORT, JSON_FACTORY, getCredential());
}
また、ここで指示されているように、AppEngine アカウントを BigQuery の「チーム」のメンバーにしようとしました: https://developers.google.com/bigquery/docs/authorization#service-accounts-appengine
ただし、Google の API コンソールのチーム ページには、AppEngine サービス アカウント名の横に「招待状が送信されました。応答を待っています」と表示されます。私は AppEngine 側と BigQuery 側の両方の所有者で唯一のチーム メンバーですが、招待状を受け取りませんでした (18 時間以上)。これにより、BigQuery と AppEngine のサービス統合が壊れているだけだと思いますが、誰かが私が間違ったことをしているのを見つけた場合は、助けていただければ幸いです。