2

Node.js アプリケーションを取得して Google BigQuery にクエリを実行する方法を理解しようとしている初心者で、この CodeLab チュートリアルを Java から適応させようとしています。どのステップが欠落している可能性がありますか?

まず、clientid を使用して次の Oauth2 URL を作成します。

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 に正常に到達し、プロンプトが表示されます

サードパーティのサービスがあなたの Google アカウントへのアクセス許可をリクエストしています。

同意すると、2 番目のプロンプトが生成されます。

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"
 }
}

アクセス許可や期限切れのトークンなどのためにコードを繰り返すことができないことはわかっていますが、概念的にどのステップが欠けているのでしょうか。

4

2 に答える 2

3

accesstoken を URL パラメータとしてではなく認証ヘッダーとして送信してみましたか?

のように

https://www.googleapis.com/bigquery/v2/projects/1047877053699/datasets/visits
Authorization: OAuth Your-access-token-here-not-urlencoded
于 2012-08-16T14:51:35.397 に答える
1

accessToken参考までに - URL でパラメーターを最初に使用したようです。代わりにaccess_token、正常に動作しているように見えます。もちろん、ヘッダーを使用するという Jordan の提案は、それができる場合には優れていますが、アクセス ログやプロキシ サーバー ログなどに記録される可能性が低いため、より安全です。

于 2012-08-20T18:38:52.770 に答える