2017-02-12 86 views
-1

我想访问谷歌的BigQuery公共数据从蟒设置在HerokuAPI.AI访问谷歌的BigQuery公共数据集

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

基本上在下面的例子中代替雅虎天气API I的要访问的莎士比亚集

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

我可以访问此只用我生成作为其公共数据集或做API_KEY我需要OAuth身份验证?

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

按照上面的链接,我可以看到这个“如果你仅调用不需要用户数据的API,如谷歌自定义搜索API,然后API密钥可能是更简单的使用比OAuth 2.0访问令牌“。

我在GAE中尝试了很多变体,并且遇到了项目ID变为空的问题,因此现在要在Heroku中尝试,但是想知道我是否只需要在Google云端控制台中生成的API_KEY,或者我需要OAuth他们需要将查询与计费目的的项目相关联? 我已经在Heroku上实现了雅虎天气api示例,并且该方法可行,但需要用调用BigQuery公共数据集来取代对yahoo天气的调用。

回答

3

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

您需要:

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

更多信息here

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

+0

Thx将尝试此操作... for#2“在控制台中生成服务帐户。”你的意思是从“凭据”生成json还是你的意思是生成服务帐户? – Kumar

+0

请看这里 - > https://cloud.google.com/iam/docs/creating-managing-service-accounts –

+0

yay ....看起来像我这一切只是缺少一条线... bigquery_client = bigquery .Client(project ='myprojectid123')..我把它当作bigquery_client = bigquery.Client(project =''),并认为由于json已经属于一个项目,所以这部分应该默认工作......但是得到没有项目错误,并正在疯狂......格拉西亚斯·阿米格斯!当然,我还有很长的路要走,但我认为这种连接是不可行的......希望不要太早庆祝---;) – Kumar