OAuth を使用する

Routes API では、認証に OAuth 2.0 を使用できます。 Google は、ウェブサーバー向けの OAuth 2.0 の一般的なシナリオをサポートしています。

このドキュメントでは、Google Cloud 内で OAuth トークンを Routes API 呼び出し 開発環境にデプロイできます。Google Cloud コンソールで OAuth を使用する手順については、 production 環境については、以下をご覧ください。 Google での認証

始める前に

Routes API を使用する前に、 Routes API が有効になっている必要があります。複数のメディアマシンで プロジェクト オーナーと課金管理者(常にこれらのロールを持つ担当者を確保) チームで利用できることです詳しくは、Google Cloud Console でセットアップするをご覧ください。

OAuth について

デプロイに基づいてさまざまな方法で OAuth でアクセス トークンを作成、管理 できます。

たとえば、Google OAuth 2.0 システムは、 Google サービス間で通信を行えます。このシナリオではサービス アカウントが必要です。 個々のエンドユーザーではなくアプリケーションに属すアカウントです。お客様の アプリケーションがサービス アカウントに代わって Google API を呼び出すため、ユーザーが直接関与することはありません。 認証方法の詳細については、以下をご覧ください。 Google での認証

Android または iOS モバイルアプリの一部として Routes API を使用することもできます。 Routes API での OAuth の使用に関する一般的な情報(管理に関する情報など) 異なるデプロイ環境用のアクセス トークンについては、 OAuth 2.0 を使用した Google API へのアクセス

OAuth スコープについて

Routes API で OAuth を使用するには、OAuth トークンにスコープを割り当てる必要があります。

  • https://www.googleapis.com/auth/cloud-platform

例: ローカル開発環境で REST API 呼び出しを試す

OAuth トークンを使用して Routes API を試すが、環境がない場合は トークンを生成するために、このセクションの手順に沿って呼び出しを行います。

この例では、Google Cloud で提供されている OAuth トークンを アプリケーションのデフォルト認証情報(ADC) クリックします。ADC を使用してクライアント ライブラリから Google API を呼び出す方法については、以下をご覧ください。 クライアント ライブラリを使用して認証する

前提条件

ADC を使用して REST リクエストを行う前に、Google Cloud CLI を使用してください。 認証情報を ADC に提供します。

  1. まだプロジェクトを作成していない場合は、プロジェクトを作成し、 Google Cloud コンソールでセットアップする
  2. gcloud CLI をインストールして初期化します
  3. ローカルマシンで次の gcloud コマンドを実行して、 認証情報ファイル:

    gcloud auth application-default login
  4. ログイン画面が表示されます。ログインすると、認証情報が ADC で使用されるローカル認証情報ファイル

詳細については、次をご覧ください: ローカル開発環境 セクション( アプリケーションのデフォルト認証情報に認証情報を提供する ご覧ください

REST リクエストを行う

この例では、2 つのリクエスト ヘッダーを渡します。

  • 次のコマンドを使用して、Authorization ヘッダーで OAuth トークンを渡します コマンドを使用してトークンを生成します。

    gcloud auth application-default print-access-token

    返されるトークンのスコープは https://www.googleapis.com/auth/cloud-platform.

  • 課金が有効になっている Google Cloud プロジェクトの ID または名前を X-Goog-User-Project ヘッダー。詳しくは以下をご覧ください。 Cloud コンソールでセットアップします

次の例では、OAuth トークンを使用して Routes API を呼び出します。

curl -X POST -d '{
  "origin":{
    "location":{
      "latLng":{
        "latitude": 37.419734,
        "longitude": -122.0827784
      }
    }
  },
  "destination":{
    "location":{
      "latLng":{
        "latitude": 37.417670,
        "longitude": -122.079595
      }
    }
  },
  "travelMode": "DRIVE",
}' \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
-H "X-Goog-FieldMask: routes.duration,routes.distanceMeters" \
"https://routes.googleapis.com/directions/v2:computeRoutes"

トラブルシューティング

この API でサポートされていないエンドユーザー認証情報に関するエラー メッセージがリクエストから返された場合は、 ユーザー認証情報が機能しないをご覧ください。