2017-02-12 19 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