Weather API を設定する

このドキュメントでは、Weather API の使用を開始するために必要な手順について説明します。

Weather API の使用を開始するには、マップデモキーをリクエストするか、アカウントを設定して課金を有効にします。

マップデモキーを取得する

マップデモキーは、お支払い情報を入力せずに、Weather API を使用したプロトタイピングを開始できる無料の機能です。マップデモキーはテストとプロトタイピングのみを目的としており、本番環境での使用は想定されていません。詳細については、マップデモキーを取得して Weather API で使用するをご覧ください。

標準 API キーを取得する

コードを本番環境に移行する準備ができたら、次の手順で API キーを作成し、課金を有効にします。

前提条件

この手順では、Google Cloud アカウントと、課金が有効になっている Google Cloud プロジェクトを設定します。また、Weather API の使用料金についても理解しておく必要があります。

  1. Weather API の使用量と請求額で、使用量に対する請求額と費用を確認します。
  2. Google Cloud アカウントがあることを確認します。

    Google Cloud コンソールにログインします。
  3. 課金が有効になっている Google Cloud プロジェクトがあることを確認します。

    [お支払い] ページに移動
    1. プロジェクトを選択して [お支払い] ページを開きます。
    2. [お支払い] ページで、次の操作を行います。

      • 選択したプロジェクトで課金がすでに有効になっていて、請求先アカウントが 1 つしかない場合は、[お支払い] ページが開きます。
      • 請求先アカウントが複数ある場合は、[リンクされた請求先アカウントに移動] を選択して、プロジェクトに関連付けられている請求先アカウントの詳細を表示します。
      • 請求先アカウントが存在しても、プロジェクトに関連付けられていない場合は、請求先アカウントをプロジェクトにリンクするように求めるプロンプトが表示されます。
      • 請求先アカウントが存在しない場合、または新しい請求先アカウントを作成する場合は、[請求先アカウントを管理] を選択して新しい請求先アカウントを作成します。詳細については、新しいセルフサービスの Cloud 請求先アカウントを作成するをご覧ください。

API を有効にする

Weather API を使用する前に、Google Cloud コンソールまたは gcloud コマンドを使用して、Google Cloud プロジェクトで API を有効にする必要があります。

API を有効にするには:

Console

  1. Google Cloud コンソールで商品ページを開きます。

    Weather API を有効にする
  2. [有効にする] ボタンをクリックします。

gcloud

gcloud services enable \
    --project "PROJECT" \
    "weather.googleapis.com"

詳しくは、Google Cloud SDK、Cloud SDK のインストール、および以下のコマンドをご覧ください。

Weather API で使用する API キーを取得する

Google Maps Platform サービスでは、API 呼び出しに API キーまたは OAuth トークンのいずれかを含めることを必須とすることで、不正使用を防止しています。最初に API キーの手順を行います。代わりに OAuth トークンを使用するには、OAuth トークンを作成するをご覧ください。

API キーは、Cloud 請求先アカウントと Google Cloud プロジェクトを、アプリケーションから Google Maps Platform API または SDK へのリクエストに関連付ける一意の英数字文字列です。新しいキーを作成する場合、または既存のキーに API や SDK を追加する場合は、次の手順に沿って操作します。

Console

  1. [Google Maps Platform] > [キーと認証情報] ページに移動します。

    [キーと認証情報] ページに移動

  2. プロンプトが表示されたら、プロジェクトを選択します。
  3. 次のいずれかを行います。

    • 新しい鍵を作成する:

      1. [認証情報を作成] > [API キー] をクリックします。
      2. [API キーの作成] パネルで、[API の制限の選択] リストを開きます。
      3. このキーに必要のない API をすべてクリアし、[Weather API] が選択されたままになっていることを確認します。
      4. [作成] をクリックします。パネルに新しい API キーが表示されます。
    • 既存の鍵を使用する:

      1. 鍵の名前をクリックします。
      2. [API の制限を選択] リストで、[Weather API] を選択します。
      3. [保存] をクリックします。

    ここで API を選択しても、API は有効になりません。API ライブラリ ページで Weather API が有効になっていることを確認します。

  4. 後で鍵文字列を表示するには、[鍵と認証情報] ページに移動し、鍵の [鍵を表示] をクリックします。

コンソールの表示がこれらの手順と異なる場合は、Google Cloud ドキュメントの API キーを作成すると API 制限を追加するをご覧ください。

gcloud

次のコマンドで、PROJECT_ID をプロジェクト ID に置き換えます。

  • 新しい鍵を作成する: 次のコマンドを実行します。DISPLAY_NAME は鍵の名前に置き換えます。

    gcloud services api-keys create \
        --project="PROJECT_ID" \
        --display-name="DISPLAY_NAME" \
        --api-target=service=weather.googleapis.com

    詳しくは、Google Cloud SDK、Cloud SDK のインストール、および以下のコマンドをご覧ください。

  • 既存の鍵を使用する: 次のコマンドを実行します。KEY_ID は鍵の ID に置き換えます。--append フラグは、キーですでに許可されている API を保持します。このフラグを指定しない場合、コマンドはそれらを置き換えます。

    gcloud services api-keys update KEY_ID \
        --project="PROJECT_ID" \
        --append \
        --api-target=service=weather.googleapis.com

    詳しくは、Google Cloud SDK、Cloud SDK のインストール、および以下のコマンドをご覧ください。

    鍵 ID は、鍵文字列や表示名ではありません。これを確認するには、gcloud services api-keys list --project="PROJECT_ID" を実行します。ID は name フィールドの最後の部分(projects/PROJECT_NUMBER/locations/global/keys/KEY_ID)です。

鍵文字列を表示するには、gcloud services api-keys get-key-string KEY_ID --project="PROJECT_ID" を実行します。

API リクエストを発行する

Weather API リクエストを送信して、カリフォルニア州マウンテンビューの現在の気象条件に関する JSON レスポンスを返します。すべてのリクエストに API キーの英数字文字列を含める必要があります。また、API キーを含むリクエストには HTTPS を使用する必要があります。

  1. 以下のコードの API_KEY をクリックして、鍵の英数字文字列を挿入します。

    curl -X GET "https://weather.googleapis.com/v1/currentConditions:lookup?key=YOUR_API_KEY&location.latitude=37.4220&location.longitude=-122.0841"
    
  2. コードサンプルのコピーアイコン コピーアイコンを選択します。 をクリックして、curl コマンドをコピーします。
  3. コマンドをターミナル ウィンドウに貼り付けて実行します。

レスポンスは、次の形式の JSON オブジェクトです。

{
  "currentTime": "2025-07-01T12:33:24.606422609Z",
  "timeZone": {
    "id": "America/Los_Angeles"
  },
  "isDaytime": false,
  "weatherCondition": {
    "iconBaseUri": "https://maps.gstatic.com/weather/v1/partly_clear",
    "description": {
      "text": "Partly cloudy",
      "languageCode": "en"
    },
    "type": "PARTLY_CLOUDY"
  },
  "temperature": {
    "degrees": 16,
    "unit": "CELSIUS"
  },
  "feelsLikeTemperature": {
    "degrees": 16,
    "unit": "CELSIUS"
  },
  "dewPoint": {
    "degrees": 12,
    "unit": "CELSIUS"
  },
  "heatIndex": {
    "degrees": 16,
    "unit": "CELSIUS"
  },
  "windChill": {
    "degrees": 16,
    "unit": "CELSIUS"
  },
  "relativeHumidity": 78,
  "uvIndex": 0,
  "precipitation": {
    "probability": {
      "percent": 3,
      "type": "RAIN"
    },
    "snowQpf": {
      "quantity": 0,
      "unit": "MILLIMETERS"
    },
    "qpf": {
      "quantity": 0,
      "unit": "MILLIMETERS"
    }
  },
  "thunderstormProbability": 0,
  "airPressure": {
    "meanSeaLevelMillibars": 1011.5
  },
  ...
}

API キーの制限を適用する

API キーの使用を、それらを必要とする API とアプリのみに制限することを強くおすすめします。API キーに制限をかけることにより、不正なリクエストからアプリケーションを守り、セキュリティを強化できます。API キーは、次の 2 種類の制限をサポートしています。

  • API の制限では、API キーを使用した呼び出しを許可する SDK と API を指定します。コンソールと gcloud CLI では、キーを作成するときに少なくとも 1 つの API 制限が必要です。
  • アプリケーションの制限では、API キーの使用を許可するウェブサイト、IP アドレス、またはアプリを指定します。

制限の適用について詳しくは、API キーを制限するをご覧ください。

OAuth トークンを作成する

Weather API は認証に OAuth 2.0 をサポートしています。Google は、ウェブサーバーのシナリオなど、一般的な OAuth 2.0 シナリオをサポートしています。

このドキュメントでは、開発環境で Weather API 呼び出しに OAuth トークンを渡す方法について説明します。本番環境で OAuth を使用する方法については、Google での認証方法をご覧ください。

OAuth の概要

デプロイ環境に応じて、いくつかの方法で OAuth を使用してアクセス トークンを作成、管理できます。

OAuth 2.0 を使用すると、アプリケーションと Google サービス間のサーバー間インタラクションを行うことができます。このシナリオでは、個々のユーザーではなく、アプリケーションに関連付けられたサービス アカウントを使用します。サービス アカウントを使用すると、ユーザーが直接関与することなく API リクエストを行うことができます。認証方法の詳細については、Google での認証方法をご覧ください。

または、Weather API を Android または iOS のモバイルアプリに統合することもできます。さまざまなデプロイ環境で OAuth を使用してアクセス トークンを管理する方法については、OAuth 2.0 を使用した Google API へのアクセスをご覧ください。

OAuth スコープ

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

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

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

トークンを生成する環境がなく、OAuth トークンを使用して Weather API を試す場合は、このセクションの手順を使用します。

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

次の REST 手順は、開発またはテストにのみ使用し、本番環境では使用しないでください。

前提条件

ADC を使用して REST リクエストを行う前に、gcloud CLI を使用して ADC に認証情報を指定します。

  1. gcloud CLI をインストールして初期化します。詳細については、gcloud CLI をインストールするをご覧ください。

  2. gcloud CLI で認証します。

    gcloud auth application-default login
  3. ログイン プロセスを完了して、ADC で使用されるローカル認証情報ファイルに認証情報を保存します。

詳細については、ローカル開発環境の ADC の設定をご覧ください。

REST リクエストを行う

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

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

    gcloud auth application-default print-access-token

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

  • X-Goog-User-Project ヘッダーに、課金が有効になっている Google Cloud プロジェクトの ID または名前を渡します。

OAuth トークンを使用して Weather API を呼び出す手順は次のとおりです。

  1. 次のコードサンプルで、PROJECT_NUMBER_OR_ID を Google Cloud プロジェクト番号または ID に置き換えます。

    curl -X GET \
    -H 'X-Goog-User-Project: PROJECT_NUMBER_OR_ID' \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    "https://weather.googleapis.com/v1/currentConditions:lookup?location.latitude=37.4220&location.longitude=-122.0841"
  2. curl コマンドをコピーするには、コードサンプルの [コピー] をクリックします。

  3. コマンドをターミナル ウィンドウに貼り付けて実行します。

レスポンスは次のような JSON オブジェクトです。

{
  "currentTime": "2025-07-01T12:33:24.606422609Z",
  "timeZone": {
    "id": "America/Los_Angeles"
  },
  "isDaytime": false,
  "weatherCondition": {
    "iconBaseUri": "https://maps.gstatic.com/weather/v1/partly_clear",
    "description": {
      "text": "Partly cloudy",
      "languageCode": "en"
    },
    "type": "PARTLY_CLOUDY"
  },
  "temperature": {
    "degrees": 16,
    "unit": "CELSIUS"
  },
  "feelsLikeTemperature": {
    "degrees": 16,
    "unit": "CELSIUS"
  },
  "dewPoint": {
    "degrees": 12,
    "unit": "CELSIUS"
  },
  "heatIndex": {
    "degrees": 16,
    "unit": "CELSIUS"
  },
  "windChill": {
    "degrees": 16,
    "unit": "CELSIUS"
  },
  "relativeHumidity": 78,
  "uvIndex": 0,
  "precipitation": {
    "probability": {
      "percent": 3,
      "type": "RAIN"
    },
    "snowQpf": {
      "quantity": 0,
      "unit": "MILLIMETERS"
    },
    "qpf": {
      "quantity": 0,
      "unit": "MILLIMETERS"
    }
  },
  "thunderstormProbability": 0,
  "airPressure": {
    "meanSeaLevelMillibars": 1011.5
  },
  ...
}

トラブルシューティング

この API がエンドユーザー認証情報をサポートしていないというエラー メッセージがリクエストから返された場合は、ADC 設定のトラブルシューティングをご覧ください。

次のステップ

Weather API を有効にしてリクエストを正常に送信したので、現在の状況を取得するで API の使用方法の詳細を確認してください。