【问题标题】:API.AI to access google BigQuery public datasetsAPI.AI 访问 google BigQuery 公共数据集
【发布时间】:2017-06-30 19:09:24
【问题描述】:

我想从 Heroku 上的 python 访问 google BigQuery 公共数据集

例子 - 莎士比亚 https://bigquery.cloud.google.com/table/bigquery-public-data:samples.shakespeare

基本上在下面的示例中,我想访问莎士比亚数据集而不是雅虎天气 api

https://github.com/api-ai/apiai-weather-webhook-sample

我可以仅使用我生成的 API_KEY 作为其公共数据集来访问它还是需要 OAuth 身份验证?

https://support.google.com/cloud/answer/6158857?hl=en

根据上面的链接,我可以看到“如果您只调用不需要用户数据的 API,例如 Google 自定义搜索 API,那么 API 密钥可能比 OAuth 2.0 访问令牌更易于使用。”

我在 GAE 中尝试了许多变体,但遇到了项目 id 为空的问题,因此现在要在 Heroku 中尝试,但我想知道我是否只需要我在谷歌云控制台中生成的 API_KEY 或者我需要 OAuth,因为他们是否需要将查询关联到项目以进行计费? 我已经在 Heroku 上实现了 yahoo 天气 api 示例,它可以工作,但需要用对 BigQuery 公共数据集的调用替换对 yahoo 天气的调用。

【问题讨论】:

    标签: heroku google-bigquery dialogflow-es bigquery-public-datasets


    【解决方案1】:

    如果我正确理解您的问题,您想知道如何使用 Python 以编程方式访问 BigQuery 公共数据集,更具体地说,如何进行身份验证。

    你需要:

    1. 确保在控制台中启用了 BigQuery API。
    2. 在控制台中生成服务帐号。
    3. 下载 JSON 密钥。
    4. 导出环境GOOGLE_APPLICATION_CREDENTIALS变量指向键。
    5. 使用Google Python client lib 在 BigQuery 中查询数据。

    更多信息here

    注意:这与访问您自己的数据集/表的过程相同。

    【讨论】:

    • Thx 会尝试一下...对于 #2 “在控制台中生成服务帐户”。您的意思是从“凭据”生成 json 还是您的意思是生成服务帐户?
    • 耶....看起来我拥有这一切只是缺少一行...bigquery_client = bigquery.Client(project='myprojectid123')..我把它作为 bigquery_client = bigquery。 Client(project='') 并认为由于 json 已经属于一个项目,所以这部分默认情况下应该可以工作......但是得到 None project 错误并且正在发疯......谢谢朋友!当然,我还有很长的路要走,但我认为连通性已经不存在了……希望不要过早庆祝——;)
    • 你知道我改变这一行以在 Heroku 上运行它吗?现在正在 GAE 上进行测试,但想转移到 heroku,这样我就不必重新编写 webhook >>>credentials = GoogleCredentials.get_application_default() >>>GoogleCredentials.get_access_token() 猜猜这就是 json 的来源进入 Heroku 的图片
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-16
    • 1970-01-01
    • 2022-11-11
    • 2020-06-15
    • 2020-06-26
    相关资源
    最近更新 更多