2012-08-16 6 views
2

Node.js 애플리케이션에서 Google BigQuery를 인증하고 쿼리하는 방법을 알아 내려고 을 적용하려고했습니다. 내가 누락 된 단계는 무엇일까요?Node.js의 OAuth2를 통해 BigQuery REST API에 인증

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 

이 성공적으로 타사 서비스가 Google 계정에 액세스 할 수있는 권한을 요청

하라는 메시지가 구글에 도달 :

먼저 내 클라이언트 ID를 사용하여이 OAuth2를 URL을 생성합니다. 이 이

Nodejs_Test가 허가를 요청

: 보기와 Google BigQuery를

그에게 동의에 데이터를 관리가 콜백 URL이 호출되는 두 번째 프롬프트를 생성 동의

, 매개 변수 accessToken.

나는 다음 URL을 내 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

URL 매개 변수가 아닌 인증 헤더로 accesstoken을 보내 봤습니까?

참고

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

고마워요! 작동하도록했습니다. 학습 곡선은 다단계 였지만이 방법은 적절한 키워드를 제공합니다. – prototype

1

같이 - 원래 URL의 매개 변수 accessToken을 사용하는 것 같습니다. 대신 access_token에 의해 처리되어야합니다. 정상적으로 작동하는 것 같습니다. 물론 헤더를 사용하는 요르단의 제안은 액세스 로그, 프록시 서버 로그 등에 로그인하지 않으므로 더 안전합니다.