我有一个与BigQuery项目关联的AppEngine帐户,但是当我尝试运行查询时,我得到了#34;访问被拒绝"在回应中。我已经像这样设置了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服务集成刚刚破解,但如果有人看到我做错的事情,我会非常感谢帮助。
答案 0 :(得分:1)
我的猜测是你的团队标签在控制台项目中链接到应用引擎权限,即它将显示您希望提供访问权限的邮件地址待处理。
请尝试创建启用了Bigquery API的新控制台项目(可选GS API)。之后添加您的appengine服务帐户(xxxxxx@appspot.gserviceaccount.com),可以编辑访问权限。
希望你可以做你想做的事。
另请参阅Michael Manoochehri的帖子以获取摘录。
答案 1 :(得分:0)
我重复了几次创建新项目并按照不同的顺序进行设置,如Gunasekaran的回答所示。它最终起作用,但我不确定我能再做一次,更不用说解释正确的步骤顺序了。