2012-08-16 134 views
2

新手試圖弄清楚如何讓Node.js應用程序對Google BigQuery進行身份驗證和查詢,嘗試修改this CodeLab tutorial from Java。我可能會錯過什麼步驟?通過Node.js中的OAuth2對BigQuery REST API進行身份驗證

首先,我創建一個使用我的clientid此的oauth2網址:

https://accounts.google.com/o/oauth2/auth? 
    client_id=1047877053699-den6kbs4v3f2bft6clonsirkj1pc7t6j.apps.googleusercontent.com 
    &scope=https://www.googleapis.com/auth/bigquery 
    &redirect_uri=http://localhost:3000/oauth2callback 
    &access_type=offline 
    &response_type=code 

這成功地達到谷歌,它會提示

第三方服務請求訪問您的谷歌帳戶。

一致表示產生第二提示:

Nodejs_Test請求權限: 查看和谷歌的BigQuery

同意並用於管理您的數據,回調URL被稱爲,參數爲accessToken

認爲以下網址應該列出我的BigQuery項目/數據集表:

https://www.googleapis.com/bigquery/v2/projects/1047877053699/datasets/visits&accessToken=4%2FC196NizZwlNgWSt5oNqQwendmLNW.0vgUrlGJ6kMRshQV0ieZDApig3NfcgI

但有或沒有的accessToken調用返回下列消息「需要登錄」。

{ 
"error": { 
    "errors": [ 
    { 
    "domain": "global", 
    "reason": "required", 
    "message": "Login Required", 
    "locationType": "header", 
    "location": "Authorization" 
    } 
    ], 
    "code": 401, 
    "message": "Login Required" 
} 
} 

我知道你不能重複因爲權限的代碼,過期令牌等,但我不知道我的步驟可能會缺少概念。

回答

3

您是否嘗試將accesstoken作爲授權標頭而不是url參數發送?

https://www.googleapis.com/bigquery/v2/projects/1047877053699/datasets/visits 
Authorization: OAuth Your-access-token-here-not-urlencoded 
+0

謝謝!得到它的工作。學習曲線是多步驟的,但是這提供了正確的關鍵字來鎖定。 – prototype 2012-08-21 02:09:57

1

僅供參考 - 看起來像您最初使用的參數accessToken在URL中。它應該改爲access_token,看起來好像很好。當然,如果你能夠做到這一點,Jordan的使用標題的建議更好 - 它更安全,因爲它不太可能登錄訪問日誌,代理服務器日誌等。