OAuth を使用する

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

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

始める前に

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

OAuth について

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

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

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

OAuth スコープについて

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

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

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

OAuth トークンを使用して Route Optimization 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.

  • リクエスト本文の content-type に application/json を指定します。

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

curl -X POST 'https://routeoptimization.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID:optimizeTours' \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
--data-binary @- << EOM
{
  "model": {
    "shipments": [
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.73881799999999,
              "longitude": -122.4161
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.79581,
              "longitude": -122.4218856
            }
          }
        ]
      }
    ],
    "vehicles": [
      {
        "startLocation": {
          "latitude": 37.73881799999999,
          "longitude": -122.4161
        },
        "endLocation": {
          "latitude": 37.73881799999999,
          "longitude": -122.4161
        }
      }
    ],
    "globalStartTime": "2023-01-13T16:00:00-08:00",
    "globalEndTime": "2023-01-14T16:00:00-08:00"
  }
}
EOM

トラブルシューティング

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