Konum verileriyle çalışma

Bu eğitimde, konum verilerinin nasıl oluşturulacağı ve düzenleneceği gösterilmektedir. My Business Information API ile şunları yapabilirsiniz:

Konumlar Ads'de kullanılabilir ancak Arama ve Haritalar'da gösterilmeye uygun olmaları için doğrulanmaları gerekir. Konum verileri, accounts.locations koleksiyonuyla temsil edilir.

Başlamadan önce

My Business Information API'yi kullanmadan önce uygulamanızı kaydettirmeniz ve OAuth 2.0 kimlik bilgilerini almanız gerekir. My Business Information API'yi kullanmaya nasıl başlayacağınızla ilgili ayrıntılar için Temel kurulum başlıklı makaleyi inceleyin.

Konum oluşturun

accounts.locations.create adresine sahip olan bir işletme için yeni bir konum oluşturmak amacıyla Benim İşletmem Bilgileri API'sini kullanabilirsiniz.

Konum oluşturmak için aşağıdakileri kullanın:

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"
      }
     }
}

Konum silme

locations.delete içeren bir konumu silmek için My Business Information API'yi kullanabilirsiniz.

Bir konumu silmek için aşağıdakileri kullanın:

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

Ada göre konum al

Hesabınızla ilişkilendirilmiş çok sayıda işletmeniz varsa tek bir konum almak isteyebilirsiniz. locations.get yoluyla belirli bir konumu almak için işletme adına göre filtreleme yapabilirsiniz.

Bir konumu ada göre almak için aşağıdakileri kullanın. Belirli alanları almak için bir readMask belirtmelisiniz. :

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

Google Haritalar sürümünü döndürme

HTTP

Bir konumun Google Haritalar sürümünü döndürmek için istek URL'sine aşağıdaki örnekte olduğu gibi googleUpdated ekleyin:

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

Hiç sonuç olmazsa 404 NOT FOUND HTTP durum kodu döndürülür. Google güncellemelerini yönetmeyle ilgili daha fazla bilgiyi burada bulabilirsiniz.

Konumları listeleme

Bir veya daha fazla konumu yönetirken, hesabınızla ilişkilendirilen tüm konumları listelemek isteyebilirsiniz. Bir kullanıcıyla ilişkili tüm konumları listelemek için accounts.locations.list API'sini kullanın.

Kimliği doğrulanmış bir kullanıcının doğrudan sahip olduğu veya yönettiği tüm konumları listelemek için aşağıdakileri kullanın:

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

Dolaylı olarak sahip olunan (bir grup aracılığıyla yönetilen veya yönetilen) girişleri dahil etmek üzere istek URL'sindeki hesap için '-' joker karakteri kullanın:

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

Konumları listelerken sonuçları filtreleme

HTTP

accounts.locations.list çağrısı yaptığınızda döndürülen sonuçları sınırlandırmak için filtreleri kullanabilirsiniz. Bir isteği filtrelemek için temel URL'ye bu örnekte gösterildiği gibi bir filtre ifadesi ekleyin:

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

Temel sorgu söz dizimi

Kısıtlama aşağıdaki söz dizimine sahiptir: <field><operator><value>. Burada operatör EQUALS (=) veya HAS (:) olur. EQUALS (=) ve HAS (:) operatörleri, locationName dışındaki tüm alanlar için eşdeğerdir (aşağıdaki tabloya bakın).

Tırnak işaretleri "%22", boşluklar da artı işareti (+) olarak kodlanır.

Aksi belirtilmedikçe tüm karşılaştırmalar, büyük/küçük harfe duyarlı olmayan jeton karşılaştırmalarıdır. Örneğin, "4 sürücü", "4, Privet Drive" ile eşleşir.

Bir filtre sorgusunda birden çok alanı birleştirme

API, AND operatörünün tüm alan kısıtlamalarını bağlamasına izin verir. Ancak, VEYA anahtar kelimesi söz konusu olduğunda tüm kısıtlamaların aynı alan için geçerli olması gerekir. Örneğin: locationName=A VEYA labels=B değerine izin verilmez.

Örnek

Aşağıdaki örnekte "Pepé Le Pew" adlı tüm konumları döndüren bir filtre ifadesi gösterilmektedir. Burada "fransız_restoranı" veya "european_restoran" ile ilgili kategoriler ve "yeni açıldı" etiketi görüntülenir.

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

Mesafeye veya hesaba göre arayın

Aşağıdaki örnekte, bir coğrafi noktaya belirli bir uzaklıktaki konumları nasıl arayabileceğiniz gösterilmektedir:

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

Boulder, Colorado ABD'ye 1.000 kilometre mesafe içindeki konumları filtrelemek için:

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

Desteklenen tüm filtre alanlarının listesi

Aşağıda, filtreleme için kullanılabilecek tüm alanların kapsamlı bir listesi verilmiştir:

Alanlar Açıklama ve örnek
Dize eşleştirme alanları
title

İşletmenin gerçek dünyadaki adı

https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=title:"Bajis" (herhangi bir konum adıyla "Bajis" alt dize olarak eşleşir)

https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=title="Bajis" (jeton/kelime olarak herhangi bir konum adıyla "Bajis" ile eşleşir)

categories

Birincil kategori ile ek kategorilerin kombinasyonu. "gcid:" etiketinin atlanması gerektiğini unutmayın. Birden fazla kategori varsa bu filtre, en az bir kategori bu kalıpla eşleşirse eşleşir.

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

phone_numbers.primary_phone

E.164 biçiminde birincil telefon numarası (ör. "+441234567890").

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

storefront_address.region_code

Adresin bulunduğu ülkenin/bölgenin CLDR bölge kodu

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

storefront_address.administrative_area

Bir ülkenin veya bölgenin posta adresleri için kullanılan en yüksek idari alt bölüm

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

storefront_address.locality

Adresin şehir/ilçe bölümü

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

storefront_address.postal_code

Adresin posta kodu

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

metadata.place_id

Bu konum doğrulandıysa ve Google Haritalar'a bağlıysa/Google Haritalar'da görünüyorsa bu alan, konumun yer kimliğine eşit olur

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

openInfo.status

Konumun şu anda işletme için açık olup olmadığını belirtir (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

İşletmenizi etiketlemenize olanak tanıyan serbest biçimli dizelerden oluşan bir koleksiyon. Diğer tüm alanların aksine bu değer, yalnızca bir jetonu değil, büyük/küçük harf kullanımı da dahil olmak üzere tam bir etiketle tam olarak eşleşmelidir. Örneğin, bir etiket "XX YY" ise "XX" veya "xx yy" eşleşmez.

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

storeCode

Bu konumun harici tanımlayıcısı (belirli bir hesap içinde benzersiz olması gerekir)

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

İşlevler
distance

Konumun bir coğrafi noktaya olan mesafesine göre filtreleme yapmanıza olanak tanır.

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

Sorgu alanına göre sırala

Sonuçları işletme adına veya mağaza koduna göre artan veya azalan düzende sıralayabilirsiniz. Birden fazla sıralama ölçütü, aşağıdaki örnekte olduğu gibi orderBy dizesinde virgüllerle ayrılır:

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

Konuma yama uygulama

locations.patch ile bir konum için bir veya daha fazla alanı güncellemek istiyorsanız My Business Information API'sini kullanın.

Bir konuma ilişkin bir veya daha fazla alanı değiştirmek için aşağıdakileri kullanın:

HTTP

Alanları ve güncellenen değerleri konum alanıyla ekleyin ve fieldMask değeri olarak, güncellenmiş alanların virgülle ayrılmış listesini kullanın.

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