API.AI访问谷歌BigQuery公共数据集

时间:2017-02-12 21:03:29

标签: heroku google-bigquery dialogflow

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

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

基本上在下面的示例中,而不是yahoo weather 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结果为null,因此现在尝试在Heroku中但是想知道我是否只需要在Google云端控制台中生成的API_KEY,或者我需要OAuth是否需要将查询与项目相关联以进行计费? 我已经在Heroku上实现了yahoo weather api示例,但是有效但需要通过调用BigQuery公共数据集来替换对yahoo天气的调用。

1 个答案:

答案 0 :(得分:3)

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

你需要:

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

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