Places API (신규) 설정

유럽 경제 지역 (EEA) 개발자

이 문서에서는 Places API (신규)를 사용하기 시작하는 데 필요한 단계를 설명합니다.

기본 요건

이 절차에서는 결제가 사용 설정된 Google Cloud 계정 및 Google Cloud 프로젝트를 설정하는 방법을 안내합니다. 또한 Places API (신규) 사용에 대한 요금 청구 방식도 숙지해야 합니다.

  1. Places API (신규) 사용량 및 결제에서 사용량에 대한 결제 및 비용을 검토합니다.
  2. Google Cloud 계정이 있는지 확인합니다.

    Google Cloud 콘솔에 로그인
  3. 결제가 사용 설정된 Google Cloud 프로젝트가 있는지 확인합니다.

    결제 페이지로 이동
    1. 프로젝트를 선택하여 결제 페이지를 엽니다.
    2. 결제 페이지에서 다음을 수행합니다.

      • 선택한 프로젝트에 결제가 이미 사용 설정되어 있고 결제 계정이 하나만 있는 경우 결제 페이지가 열립니다.
      • 결제 계정이 여러 개인 경우 연결된 결제 계정으로 이동을 선택하여 프로젝트와 연결된 결제 계정에 대한 세부정보를 확인합니다.
      • 결제 계정이 있지만 프로젝트와 연결되어 있지 않으면 결제 계정을 프로젝트에 연결하라는 메시지가 표시됩니다.
      • 결제 계정이 없거나 새 결제 계정을 만들려면 결제 계정 관리를 선택하여 새 결제 계정을 만듭니다. 자세한 내용은 새 셀프 서비스 Cloud Billing 계정 만들기를 참조하세요.

API 사용 설정

Places API (신규)를 사용하려면 먼저 Google Cloud 콘솔 또는 gcloud 명령어를 사용하여 Google Cloud 프로젝트에서 사용 설정해야 합니다.

API를 사용 설정하려면 다음 안내를 따르세요.

콘솔

  1. Google Cloud 콘솔에서 제품 페이지를 엽니다.

    Places API (신규) 사용 설정
  2. 사용 설정 버튼을 클릭합니다.

gcloud

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

Google Cloud SDK, Cloud SDK 설치 및 다음 명령어에 대해 자세히 알아보세요.

Places API (신규)에서 사용할 API 키 가져오기

Google Maps Platform 제품은 API 호출에 API 키 또는 OAuth 토큰을 포함하도록 요구하여 무단 사용으로부터 보호합니다. API 키 절차가 먼저 진행됩니다. 대신 OAuth 토큰을 사용하려면 OAuth 토큰 만들기를 참조하세요.

API 키는 Cloud Billing 계정 및 Google Cloud 프로젝트를 애플리케이션에서 Google Maps Platform API 또는 SDK에 보내는 요청과 연결하는 고유한 영숫자 문자열입니다. 새 키를 만들거나 기존 키에 API 또는 SDK를 추가하려면 다음 안내를 따르세요.

콘솔

  1. Google Maps Platform > 키 및 사용자 인증 정보 페이지로 이동합니다.

    키 및 사용자 인증 정보 페이지로 이동

  2. 메시지가 나타나면 프로젝트를 선택합니다.
  3. 다음 중 하나를 수행합니다.

    • 새 키 만들기:

      1. 사용자 인증 정보 만들기 > API 키를 클릭합니다.
      2. API 키 만들기 패널에서 API 제한사항 선택 목록을 엽니다.
      3. 이 키에 필요하지 않은 API를 모두 지우고 Places API (신규)가 선택된 상태로 유지되는지 확인합니다.
      4. 만들기를 클릭합니다. 패널에 새 API 키가 표시됩니다.
    • 기존 키 사용:

      1. 키 이름을 클릭합니다.
      2. API 제한사항 선택 목록에서 Places API (New)를 선택합니다.
      3. 저장을 클릭합니다.

    여기에서 API를 선택해도 사용 설정되지 않습니다. API 라이브러리 페이지에서 Places 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=places.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=places.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 요청하기

Places API (신규) 요청을 실행하여 'Spicy Vegetarian Food in Sydney, Australia' 문자열에 대한 텍스트 검색의 JSON 응답을 반환합니다. 모든 요청에 API 키의 영숫자 문자열을 포함해야 하며 API 키가 포함된 요청에는 HTTPS를 사용해야 합니다.

  1. 아래 코드에서 API_KEY를 클릭하여 키의 영숫자 문자열을 삽입합니다.

    curl -X POST -d '{
      "textQuery" : "Spicy Vegetarian Food in Sydney, Australia"
    }' \
    -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
    -H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel' \
    'https://places.googleapis.com/v1/places:searchText'
  2. 코드 샘플 복사 아이콘을 선택합니다.에서 복사 아이콘을 클릭하여 curl 명령어를 복사합니다.
  3. 터미널 창에 명령어를 붙여넣고 명령어를 실행합니다.

응답은 다음과 같은 형식의 JSON 객체입니다.

{
  "places": [
    {
      "name": "places/ChIJs5ydyTiuEmsR0fRSlU0C7k0",
      "id": "ChIJs5ydyTiuEmsR0fRSlU0C7k0",
      "types": [
        "vegan_restaurant",
        "vegetarian_restaurant",
        "meal_takeaway",
        "restaurant",
        "food",
        "point_of_interest",
        "establishment"
      ],
      "nationalPhoneNumber": "0433 479 794",
      "internationalPhoneNumber": "+61 433 479 794",
      "formattedAddress": "29 King St, Sydney NSW 2000, Australia",
      "addressComponents": [
        {
          "longText": "29",
          "shortText": "29",
          "types": [
            "street_number"
          ],
          "languageCode": "en-US"
        },
  ...
}

API 키 제한사항 적용

API 키를 필요한 API 및 앱에서만 사용하도록 제한하는 것이 좋습니다. API 키를 제한하면 불필요한 요청으로부터 애플리케이션이 보호되어 애플리케이션의 보안이 강화됩니다. API 키는 두 가지 유형의 제한사항을 지원합니다.

  • API 제한사항은 API 키를 사용해서 호출할 수 있는 SDK 및 API를 지정합니다. 키를 만들 때 콘솔과 gcloud CLI에는 하나 이상의 API 제한이 필요합니다.
  • 애플리케이션 제한사항은 API 키를 사용할 수 있는 웹사이트, IP 주소 또는 앱을 지정합니다.

제한사항 적용에 대한 자세한 내용은 API 키 제한을 참고하세요.

OAuth 토큰 만들기

Places API (신규)는 인증을 위해 OAuth 2.0을 지원합니다. Google은 웹 서버 시나리오와 같은 일반적인 OAuth 2.0 시나리오를 지원합니다.

이 문서에서는 개발 환경에서 Places API (신규) 호출에 OAuth 토큰을 전달하는 방법을 설명합니다. 프로덕션 환경에서 OAuth를 사용하는 방법에 대한 자세한 내용은 Google의 인증 방법을 참조하세요.

서버에 API 요청을 수행하여 Google 지도 API를 직접 호출하거나 클라이언트 라이브러리를 사용하여 코드를 간소화할 수 있습니다. Google 지도는 Go, Java, Node.js, Python용 클라이언트 라이브러리를 제공합니다. 자세한 내용은 Places API (신규) 클라이언트 라이브러리를 참고하세요.

OAuth 개요

배포 환경에 따라 여러 가지 방법으로 OAuth를 사용하여 액세스 토큰을 만들고 관리할 수 있습니다.

애플리케이션과 Google 서비스 간의 서버 간 상호작용에 OAuth 2.0을 사용할 수 있습니다. 이 시나리오에서는 개별 사용자가 아닌 애플리케이션과 연결된 서비스 계정을 사용합니다. 사용자를 직접 개입시키지 않고 서비스 계정을 사용하여 API 요청을 수행할 수 있습니다. 인증 방법에 대한 자세한 내용은 Google 인증 방법을 참조하세요.

또는 Places API (신규)를 Android 또는 iOS 모바일 앱에 통합할 수 있습니다. 다양한 배포 환경에서 OAuth를 사용하고 액세스 토큰을 관리하는 방법에 관한 자세한 내용은 OAuth 2.0을 사용하여 Google API에 액세스하기를 참고하세요.

OAuth 범위

Places API (신규)에서 OAuth를 사용하려면 OAuth 토큰에 다음 범위를 할당해야 합니다.

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

예시: 로컬 개발 환경에서 REST API 호출 사용해 보기

토큰을 생성하는 환경이 없고 OAuth 토큰으로 Places 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 요청 수행

이 예시에서는 두 개의 요청 헤더를 전달합니다.

  • 다음 명령어를 사용하여 토큰을 생성하여 Authorization 헤더에 OAuth 토큰을 전달합니다.

    gcloud auth application-default print-access-token

    반환된 토큰의 범위는 https://www.googleapis.com/auth/cloud-platform입니다.

  • X-Goog-User-Project 헤더에서 결제가 사용 설정된 Google Cloud 프로젝트의 ID 또는 이름을 전달합니다.

OAuth 토큰을 사용하여 Places API (신규)를 호출하려면 다음 단계를 완료하세요.

  1. 다음 코드 샘플에서 PROJECT_ID를 Google Cloud 프로젝트 ID로 바꿉니다.

    curl -X POST -d '{
    "textQuery" : "Spicy Vegetarian Food in Sydney, Australia"
    }' \
    -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: places.displayName,places.formattedAddress" \
    "https://places.googleapis.com/v1/places:searchText"
  2. curl 명령어를 복사하려면 코드 샘플에서 복사를 클릭합니다.

  3. 터미널 창에 명령어를 붙여넣은 후 실행합니다.

응답은 JSON 객체입니다.

{
  "places": [
    {
      "name": "places/ChIJs5ydyTiuEmsR0fRSlU0C7k0",
      "id": "ChIJs5ydyTiuEmsR0fRSlU0C7k0",
      "types": [
        "vegan_restaurant",
        "vegetarian_restaurant",
        "meal_takeaway",
        "restaurant",
        "food",
        "point_of_interest",
        "establishment"
      ],
      "nationalPhoneNumber": "0433 479 794",
      "internationalPhoneNumber": "+61 433 479 794",
      "formattedAddress": "29 King St, Sydney NSW 2000, Australia",
      "addressComponents": [
        {
          "longText": "29",
          "shortText": "29",
          "types": [
            "street_number"
          ],
          "languageCode": "en-US"
        },
  ...
}

문제 해결

요청이 이 API에서 최종 사용자 인증 정보를 지원하지 않는다는 오류 메시지를 반환하는 경우 ADC 설정 문제 해결을 참조하세요.

다음 단계

Places API (신규)를 사용 설정하고 API 키를 구성했으므로 Places API (신규) 정보를 참고하여 Places API (신규)를 사용하는 방법을 자세히 알아보세요.