Google Maps Place Details API の使い方解説

# はじめに
本記事では、Google Maps Platform のPlace Details APIを活用し、店舗や施設の詳細情報（住所、電話番号、営業時間、口コミなど）を取得する方法を解説します

# PlaceIDの取得について
Place Details APIで詳細情報を取得するには、まず「Place ID」が必要です。
Google Places APIでは、複数の方法でPlace IDを取得できます。
代表的な手段は以下の通りです。

- Text Search（新版）
- Nearby Search（新版）
- Geocoding API
- Routes API
- Address Validation API

Text Search APIの場合、
検索時のパラメータ**X-Goog-FieldMask**にplaces.idを含めることで取得できます
[Text Search APIの使い方は前回記事](https://qiita.com/00b012deb7c8/items/1a1d2b4e376c0eca471c)

# Place Details API の使い方
## エンドポイント
```
https://places.googleapis.com/v1/places/{place_id}
```

## 主なパラメータ
**X-Goog-FieldMask**: 取得したい情報をカンマ区切りで指定
（例：displayName, formattedAddress, reviews など）

**languageCode**: レスポンスの言語（例：ja）

## リクエスト例
```terminal
curl -X GET \
  -H "Content-Type: application/json" \
  -H "X-Goog-Api-Key: {API_KEY}" \
  -H "X-Goog-FieldMask: id,displayName,formattedAddress,internationalPhoneNumber,currentOpeningHours,reviews" \
  "https://places.googleapis.com/v1/places/ChIJAQAsR--LGGAR_AmB8WMDy88?languageCode=ja"
```

:::note
**languageCode**
日本語を指定しています
:::

## レスポンス例
```json
{
  "id": "ChIJAQAsR--LGGAR_AmB8WMDy88",
  "internationalPhoneNumber": "+81 3-6891-3390",
  "formattedAddress": "日本、〒104-0061 東京都中央区銀座６丁目１０−１",
  "displayName": {
    "text": "GINZA SIX",
    "languageCode": "ja"
  },
  "currentOpeningHours": {
    "openNow": true,
    "periods": [
      {
        "open": {
          "day": 0,
          "hour": 10,
          "minute": 30,
          "date": {
            "year": 2025,
            "month": 5,
            "day": 18
          }
        },
        "close": {
          "day": 0,
          "hour": 20,
          "minute": 30,
          "date": {
            "year": 2025,
            "month": 5,
            "day": 18
          }
        }
      },
(中略)
    ],
    "weekdayDescriptions": [
      "月曜日: 10時30分～20時30分",
      "火曜日: 10時30分～20時30分",
      "水曜日: 10時30分～20時30分",
      "木曜日: 10時30分～20時30分",
      "金曜日: 10時30分～20時30分",
      "土曜日: 10時30分～20時30分",
      "日曜日: 10時30分～20時30分"
    ],
    "nextCloseTime": "2025-05-18T11:30:00Z"
  },
  "reviews": [
    {
      "name": "places/ChIJAQAsR--LGGAR_AmB8WMDy88/reviews/ChZDSUhNMG9nS0VJQ0FnTUNvdnBIMFVnEAE",
      "relativePublishTimeDescription": "1 か月前",
      "rating": 5,
      "text": {
        "text": "銀座のシンボル\n\n有名なブランドはほぼ入っている場所。今はインバウンドの方が本当に多いです。高級嗜好なお店が多いですが、6階はカジュアルかつリーズナブルなお店が多いです。飲食店の集合してきる場所があり、ちょっと休憩なども しやすいです。\n\n地下の階はお土産にできるしょうひんがたくさんあるため、お土産を買いたくなった際に時々利用させていただいてます。イートインできるspaceもあり。\n\nそれぞれの階にはトイレもありとてもきれいです！お化粧直しコーナーは椅子とコンセントもあり、ゆっくりお直し可能",
        "languageCode": "ja"
      },
      "originalText": {
        "text": "銀座のシンボル\n\n有名なブランドはほぼ入っている場所。今はインバウンドの方が本当に多いです。高級嗜好なお店が多いですが、6階はカジュアルかつリーズナブルなお店が多いです。飲食店の集合してきる場所があり、ちょっと休憩なども しやすいです。\n\n地下の階はお土産にできるしょうひんがたくさんあるため、お土産を買いたくなった際に時々利用させていただいてます。イートインできるspaceもあり。\n\nそれぞれの階にはトイレもありとてもきれいです！お化粧直しコーナーは椅子とコンセントもあり、ゆっくりお直し可能",
        "languageCode": "ja"
      },
      "authorAttribution": {
        "displayName": "193",
        "uri": "https://www.google.com/maps/contrib/100402197712131510603/reviews",
        "photoUri": "https://lh3.googleusercontent.com/a/ACg8ocJzRa7GMF2RavSX5WFnXEtbKC9eB1dqEOntHxZ6cQ9qXx0_4g=s128-c0x00000000-cc-rp-mo-ba6"
      },
      "publishTime": "2025-04-17T09:50:17.451530Z",
      "flagContentUri": "https://www.google.com/local/review/rap/report?postId=ChZDSUhNMG9nS0VJQ0FnTUNvdnBIMFVnEAE&d=17924085&t=1",
      "googleMapsUri": "https://www.google.com/maps/reviews/data=!4m6!14m5!1m4!2m3!1sChZDSUhNMG9nS0VJQ0FnTUNvdnBIMFVnEAE!2m1!1s0x60188bef472c0001:0xcfcb0363f18109fc"
    },
(中略)
  ]
}
```
※長いので一部省略

# まとめ
Place Details APIは、Googleマップに登録されている店舗や施設の詳細情報を、Place IDを基点として正確かつ体系的に取得できるAPIです。
住所や電話番号、公式サイト、営業時間、口コミ、評価など、有用な情報を網羅的に取得できる点が大きな特長です

一方で、GoogleマップのデータベースやAPI仕様に依存するため、情報の網羅性や最新性には一定の限界も存在します。
たとえば、すべての施設が詳細な営業時間やレビュー情報を持っているわけではなく、Google側のデータ更新頻度や施設オーナーの登録状況によって取得できる内容が変わる場合があります