2012-08-09 52 views
0

我试图使用.net Google API访问启用BigQuery的Google API项目。BigQuery简单Api验证

使用控制台应用程序,我试图通过在URI中提供我的简单API密钥来验证,然后试图获取项目列表。

错误我收到当我打电话取()项目名单上的是:需要登录[401]

var bigqueryService = new BigqueryService{ Key = "MY-API_KEY" }; 
var projectList = bigqueryService.Projects.List().Fetch(); 

我故意不使用的OAuth2因为我们不需要任何用户数据。

回答

1

API键只是将您的应用程序标识为API控制台,以用于配额目的和其他内务处理。这对于访问BigQuery并不具有权威性,因为我们确实将BigQuery数据视为“用户数据”。

如果你只是想获得快速玩耍一个OAuth 2访问令牌,你可以使用OAuth 2操场: https://code.google.com/oauthplayground/

此令牌的有效期为一小时,可以复制/粘贴作为access_token查询参数

下面是BigQuery的在操场使用范围: https://www.googleapis.com/auth/bigquery

最后,你要么要使用本机客户端(带外)流量: https://developers.google.com/accounts/docs/OAuth2InstalledApp

或服务器到服务器(服务帐户)流程: https://developers.google.com/accounts/docs/OAuth2ServiceAccount

我没有快速样品方便那些在.NET中,但因此,如果您不能张贴另一个问题找到他们 - 我确定有人会参与进来!

+0

谢谢 - 我们已经在[此问题]的帮助下使用OAuth2进入了服务器到服务器的方法(http://stackoverflow.com/questions/10055158/is-there-a -json-web的令牌JWT-示例-在-C)。但是,当我们发布到https://accounts.google.com/o/oauth2/token时,我们返回的是400 - 错误请求响应。此外,您确定BQ实际上支持服务帐户访问,因为它未指定[此处](https://code.google.com/p/google-api-php-client/wiki/OAuth2#Service_Accounts) – Nick 2012-08-10 14:35:04

+0

是的 - 我们已成功将服务帐户用于BigQuery。努力获取准确的中央页面列出这些AP。 400回应的内容是什么?注意:我们希望直接支持.NET库中的服务帐户(现在在代码审查中)。 – 2012-08-10 18:24:25

+0

好的,好消息是在.net库中的Service Accounts。样本是否会使用[像这样的JWT包](https://github.com/johnsheehan/jwt)还是全部是锅炉板?我问,因为我发送的链接中包的修改示例使用HMACSHA256算法应用R256哈希。它是否正确? – Nick 2012-08-12 12:21:11

0

您将无法使用简单的API密钥 - 对BigQuery API的所有授权都必须通过用户交互或通过服务帐户进行。

+0

感谢迈克尔,我已经开始使用服务帐户身份验证机制,但已击中另一墙... http://stackoverflow.com/questions/11939026/google-oauth2-service-account-access-token-request -gives-invalid-request-respo – Nick 2012-08-13 17:14:01