【问题标题】:BigQuery Simple Api AuthenticationBigQuery 简单 API 身份验证
【发布时间】:2012-08-06 13:27:04
【问题描述】:

我正在尝试使用 .net Google API 访问启用 BigQuery 的 Google API 项目。

使用控制台应用程序,我首先尝试通过在 URI 中提供我的简单 API 密钥来进行身份验证,然后只是尝试获取项目列表。

我在项目列表上调用 Fetch() 时收到的错误是:需要登录 [401]

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

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

【问题讨论】:

    标签: httpwebrequest google-api google-bigquery


    【解决方案1】:

    API 密钥只是向 API 控制台标识您的应用,以用于配额用途和其他日常管理。它不具有访问 BigQuery 的权威性,因为我们确实将 BigQuery 数据视为“用户数据”。

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

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

    BigQuery 在 Playground 中的使用范围如下: https://www.googleapis.com/auth/bigquery

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

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

    我没有方便使用 .NET 的快速示例,但如果您找不到它们,请在 SO 上发布另一个问题 - 我相信有人会加入!

    【讨论】:

    • 谢谢 - 在this question 的帮助下,我们已经转向使用 OAuth2 的服务器到服务器方法。但是,当我们 POST 到 accounts.google.com/o/oauth2/token 时,我们得到的只是 400 - Bad Request 响应。此外,您确定BQ实际上支持服务帐户访问,因为它没有指定here
    • 是的 - 我们已成功将服务帐号用于 BigQuery。致力于获得列出这些 API 的准确中心页面。 400 响应的正文是什么?注意:我们希望尽快在 .NET 库中直接支持服务帐户(现在正在代码审查中)。
    • 好的,关于 .net 库中的服务帐户的好消息。样本会使用JWT package like this 还是全部是样板?我问是因为我发送的链接中的包的修改示例通过使用 HMACSHA256 算法应用了 R256 散列。这是正确的吗?
    • 我只取得了一点点进展,所以我继续使用another question,其中包括 400 响应的正文。
    【解决方案2】:

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

    【讨论】:

    猜你喜欢
    • 2017-11-12
    • 1970-01-01
    • 1970-01-01
    • 2014-02-25
    • 2017-09-14
    • 1970-01-01
    • 2017-02-18
    • 2017-05-23
    • 2020-03-07
    相关资源
    最近更新 更多