Praca z danymi o lokalizacji

W tym samouczku pokazujemy, jak tworzyć i edytować dane o lokalizacji. Interfejs API informacji o firmie w Google Moja Firma umożliwia:

Lokalizacje mogą być używane w reklamach, ale aby mogły się wyświetlać w wyszukiwarce i Mapach, muszą być zweryfikowane. Dane o lokalizacji są reprezentowane przez zbiór accounts.locations.

Zanim zaczniesz

Zanim użyjesz interfejsu API informacji o firmie w Mojej Firmie, musisz zarejestrować swoją aplikację i uzyskać poświadczenia OAuth 2.0. Szczegółowe informacje o tym, jak zacząć korzystać z interfejsu Business Information API w Google Moja Firma, znajdziesz w artykule Konfiguracja podstawowa.

Tworzenie lokalizacji

Za pomocą interfejsu API informacji o firmie w Google Moja Firma możesz utworzyć nową lokalizację firmy za pomocą wywołania accounts.locations.create.

Aby utworzyć lokalizację, wykonaj te czynności:

HTTP
POST
https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?requestId=requestId&validateOnly=True|False

{
    "storeCode": "GOOG-SYD",
    "languageCode": "en-AU",
    "title": "Google Sydney",
    "phoneNumbers": {
      "primaryPhone": "02 9374 4000"
     }
    "storefrontAddress": {
      "addressLines": [
        "Level 5",
        "48 Pirrama Road"
      ],
      "locality": "Pyrmont",
      "postalCode": "2009",
      "administrativeArea": "NSW",
      "regionCode": "AU"
    },
    "websiteUri": "https://www.google.com.au/",
    "regularHours": {
      "periods": [
        {
          "openDay": "MONDAY",
          "closeDay": "MONDAY",
          "openTime": "09:00",
          "closeTime": "17:00"
        },
        {
          "openDay": "TUESDAY",
          "closeDay": "TUESDAY",
          "openTime": "09:00",
          "closeTime": "17:00"
        },
        {
          "openDay": "WEDNESDAY",
          "closeDay": "WEDNESDAY",
          "openTime": "09:00",
          "closeTime": "17:00"
        },
        {
          "openDay": "THURSDAY",
          "closeDay": "THURSDAY",
          "openTime": "09:00",
          "closeTime": "17:00"
        },
        {
          "openDay": "FRIDAY",
          "closeDay": "FRIDAY",
          "openTime": "09:00",
          "closeTime": "17:00"
        }
      ]
    },
    "categories": {
      "primaryCategory": {
        "name": "gcid:software_company"
      }
     }
}

Usuwanie lokalizacji

Aby usunąć lokalizację, możesz użyć interfejsu API informacji o firmie w Google Moja Firma, wywołując metodę locations.delete.

Aby usunąć lokalizację, wykonaj te czynności:

HTTP
DELETE
https://mybusinessbusinessinformation.googleapis.com/v1/locations/{locationId}

Pobieranie lokalizacji według nazwy

Jeśli masz wiele firm powiązanych z kontem, możesz wybrać jedną lokalizację. Aby uzyskać dane o konkretnej lokalizacji, możesz użyć filtra według nazwy firmy za pomocą zapytania locations.get.

Aby uzyskać lokalizację według nazwy, wykonaj te czynności. Aby pobrać określone pola, musisz podać maskę odczytu. :

HTTP
GET
https://mybusinessbusinessinformation.googleapis.com/v1/locations/{locationId}?readMask={commaSeparatedFieldsToRetrieve}

Zwracanie wersji Map Google

HTTP

Aby zwrócić wersję lokalizacji w Mapach Google, dodaj do adresu URL żądania znak googleUpdated, jak w tym przykładzie:

GET
https://mybusinessbusinessinformation.googleapis.com/v1/locations/{locationId}:googleUpdated?readMask={commaSeparatedFieldsToRetrieve}

Jeśli nie ma wyników, zwracany jest kod stanu HTTP 404 NOT FOUND. Więcej informacji o zarządzaniu aktualizacjami Google znajdziesz tutaj.

Wyświetlenie listy lokalizacji

Jeśli zarządzasz co najmniej 1 lokalizacją, możesz wyświetlić wszystkie lokalizacje powiązane z Twoim kontem. Użyj interfejsu API accounts.locations.list, aby wyświetlić listę wszystkich lokalizacji powiązanych z użytkownikiem.

Aby wyświetlić listę wszystkich lokalizacji, które są bezpośrednio własnością uwierzytelnionego użytkownika lub są przez niego zarządzane, wykonaj te czynności:

HTTP
GET
https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}

Użyj symbolu wieloznacznego '-' dla konta w adresie URL żądania, aby uwzględnić wpisy należące pośrednio do konta (należące do niego lub zarządzane przez grupę):

HTTP
GET
https://mybusinessbusinessinformation.googleapis.com/v1/accounts/-/locations?readMask={commaSeparatedFieldsToRetrieve}

Filtrowanie wyników podczas wyświetlania listy lokalizacji

HTTP

Za pomocą filtrów możesz ograniczyć wyniki zwracane po wywołaniu zapytania accounts.locations.list. Aby filtrować żądanie, dodaj wyrażenie filtra do podstawowego adresu URL, jak pokazano w tym przykładzie:

GET
https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter={FIELD_NAME}=%22{YOUR_QUERY}%22

Podstawowa składnia zapytań

Ograniczenie ma następującą składnię:<field><operator><value>,gdzie operator to równa się (=) lub zawiera (:). Operatory równa się (=) i zawiera (:) są równoważne we wszystkich polach z wyjątkiem locationName (patrz tabela poniżej).

Cudzysłowy są kodowane jako „%22”, a spacje jako znaki plusa (+).

O ile nie zaznaczono inaczej, wszystkie porównania są porównaniami tokenów, w których wielkość liter nie ma znaczenia. Na przykład „4 drive” będzie pasować do „4, Privet Drive”.

Łączenie wielu pól w zapytaniu filtra

Interfejs API umożliwia łączenie wszystkich ograniczeń pól za pomocą operatora AND. Jednak w przypadku słowa kluczowego LUB wszystkie ograniczenia muszą dotyczyć tego samego pola. Na przykład: locationName=A LUB labels=B nie jest dozwolony.

Przykład

Przykład poniżej zawiera wyrażenie filtra, które zwraca wszystkie lokalizacje o nazwie „Pepé Le Pew”. Pokazuje on kategorie „french_restaurant” lub „european_restaurant” oraz etykietę „Nowo otwarta”.

locationName=%22Pepé+Le+Pew%22+AND+
(categories=%22french_restaurant%22+OR+
categories=%22european_restaurant%22)+AND+
labels=%22newly+open%22

Wyszukaj według odległości lub konta

Ten przykład pokazuje, jak wyszukiwać lokalizacje w określonej odległości od punktu geograficznego:

HTTP
GET
https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=distance(latlng, geopoint({latitude}, {longitude}))<{distance}

Aby odfiltrować lokalizacje w odległości do 1000 mil od Boulder w Kolorado w USA:

GET
https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=distance(latlng, geopoint(40.01, -105.27))<1000.0

Lista wszystkich obsługiwanych pól filtra

Poniżej znajdziesz pełną listę wszystkich pól, których można używać do filtrowania:

Pola Opis i przykład
Pola dopasowywania ciągów znaków
title

Nazwa firmy w środowisku

https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=title:"Bajis"(dopasowuje się do dowolnej nazwy lokalizacji zawierającej podciąg „Bajis”)

https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=title="Bajis"(pasuje do dowolnej nazwy lokalizacji zawierającej „Bajis” jako element lub słowo)

categories

Kombinacja kategorii podstawowej i dodatkowych. Pamiętaj, że musisz pominąć ciąg „gcid:”. Jeśli istnieje kilka kategorii, filtr pasuje, gdy co najmniej jedna z nich odpowiada temu wzorcemu.

https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=categories="french_restaurant"

phone_numbers.primary_phone

Podstawowy numer telefonu w formacie E.164 (np. „+441234567890”).

https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=phone_numbers.primary_phone="+441234567890"

storefront_address.region_code

Kod regionu CLDR kraju lub regionu adresu.

https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=storefront_address.region_code="US"

storefront_address.administrative_area

Najwyższy podział administracyjny, który jest używany w przypadku adresów pocztowych w kraju lub regionie

https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=storefront_address.administrative_area="CA"

storefront_address.locality

Miejscowość w adresie.

https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=storefront_address.locality="New York"

storefront_address.postal_code

Kod pocztowy w adresie.

https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=storefront_address.postal_code="12345"

metadata.place_id

Jeśli lokalizacja została zweryfikowana i jest powiązana z Mapami Google lub wyświetlana w tych usługach, to pole jest równe identyfikatorowi miejsca.

https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=metadata.place_id="12345"

openInfo.status

Wskazuje, czy lokalizacja jest obecnie otwarta (OPEN, CLOSED_PERMANENTLY)

https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=openInfo.status="OPEN"

https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=openInfo.status="CLOSED_PERMANENTLY"

labels

Kolekcja ciągów tekstowych umożliwiających tagowanie firmy. W przeciwieństwie do wszystkich innych pól ta wartość musi dokładnie odpowiadać pełnej etykiecie, łącznie z wielkością liter, a nie tylko znacznikowi. Jeśli np. etykieta to „XX YY”, ani „XX”, ani „xx yy” nie będą pasować.

https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=labels="newly open"

storeCode

Zewnętrzny identyfikator tej lokalizacji, który musi być unikalny na danym koncie.

https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=storeCode="12345"

Funkcje
distance

Umożliwia filtrowanie według odległości lokalizacji od punktu geograficznego.

https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=distance(latlng, geopoint(1.0, -25.0))<1000.0

Sortowanie według pola zapytania

Wyniki możesz sortować według nazwy firmy lub kodu sklepu w kolejności rosnącej lub malejącej. Wiele kryteriów sortowania jest rozdzielanych przecinkami w ciągu orderBy, jak w tym przykładzie:

HTTP
GET
https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&orderBy=locationName,storeCode

Poprawianie lokalizacji

Aby zaktualizować co najmniej 1 pole lokalizacji za pomocą interfejsu locations.patch, użyj interfejsu API informacji o firmie w usłudze Moja Firma.

Aby zmienić co najmniej 1 pole lokalizacji, wykonaj te czynności:

HTTP

Dodaj pola i zaktualizowane wartości za pomocą pola lokalizacji, a jako wartość pola fieldMask użyj listy zaktualizowanych pól rozdzielonych przecinkami.

PATCH
https://mybusinessbusinessinformation.googleapis.com/v1/locations/{locationId}?languageCode=language&validateOnly=True|False&updateMask=title
{
    "title": "Google Shoes"
}