کار کردن با داده‌های مکان

این آموزش نحوه ایجاد و ویرایش داده‌های مکان را نشان می‌دهد. My Business Business Information API به شما امکان می‌دهد کارهای زیر را انجام دهید:

از مکان‌ها می‌توان در Ads استفاده کرد، اما برای اینکه واجدشرایط نمایش در «جستجو» و Maps باشند، باید به‌تأیید برسند. داده‌های مکان با مجموعه accounts.locations نشان داده می‌شود.

قبل‌از شروع

قبل‌از استفاده از My Business Business Information API، باید برنامه‌تان را ثبت کنید و اطلاعات اعتباری OAuth 2.0 را دریافت کنید. برای جزئیات درباره نحوه شروع کار با My Business Business Information API، به راه‌اندازی اولیه مراجعه کنید.

ایجاد مکان

می‌توانید از My Business Business Information API برای ایجاد مکان جدید برای کسب‌وکار با accounts.locations.create استفاده کنید.

برای ایجاد مکان، از موارد زیر استفاده کنید:

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

حذف مکان

می‌توانید از My Business Business Information API برای حذف مکان با locations.delete استفاده کنید.

برای حذف مکان، از موارد زیر استفاده کنید:

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

دریافت مکان با نام

اگر کسب‌وکارهای زیادی با حسابتان مرتبط است، شاید بخواهید یک مکان را دریافت کنید. می‌توانید براساس نام کسب‌وکار فیلتر کنید تا مکان خاصی را با locations.get دریافت کنید.

برای دریافت مکان براساس نام، از موارد زیر استفاده کنید. برای بازیابی فیلدهای خاص، باید readMask را مشخص کنید. :

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

برگرداندن نسخه Google Maps

HTTP

برای برگرداندن نسخه Google Maps یک مکان، googleUpdated را به نشانی وب درخواست اضافه کنید، مانند مثال زیر:

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

اگر نتیجه‌ای وجود نداشته باشد، رمز وضعیت اچ‌تی‌تی‌پی 404 NOT FOUND برگردانده می‌شود. برای جزئیات بیشتر درباره مدیریت به‌روزرسانی‌های Google، پذیرفتن یا رد کردن به‌روزرسانی‌ها را ببینید.

Return extended location data and edit status (v1alpha)

برای بازیابی داده‌های مکان ارائه‌شده توسط فروشنده و داده‌های مکان ارائه‌شده به مصرف‌کننده به‌همراه مراحل چرخه حیات ویرایش هر فیلد (مانند EDIT_LIFECYCLE_STAGE_PENDING یا EDIT_LIFECYCLE_STAGE_REJECTED)، منبع ویرایش (SOURCE_API یا SOURCE_UI)، و دلایل نقض خط‌مشی در یک تماس، از locations.getExtended در v1alpha استفاده کنید:

HTTP
GET
https://mybusinessbusinessinformation.googleapis.com/v1alpha/locations/{locationId}:getExtended

برای مشاهده نمونه‌های کامل پاسخ و جزئیات مربوط به تفسیر وضعیت ویرایش هر فیلد و نقض خط‌مشی، به بررسی وضعیت ویرایش برای مکان‌ها و مشخصه‌ها مراجعه کنید.

فهرست کردن مکان‌ها

وقتی یک یا چند مکان را مدیریت می‌کنید، ممکن است بخواهید همه مکان‌های مرتبط با حسابتان را فهرست کنید. از accounts.locations.list API برای فهرست کردن همه مکان‌های مرتبط با کاربر استفاده کنید.

برای فهرست کردن همه مکان‌هایی که مستقیماً تحت مالکیت یا مدیریت کاربر اصالت‌سنجی‌شده است، از موارد زیر استفاده کنید:

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

از نویسه عام '-' برای حساب در نشانی وب درخواست استفاده کنید تا فهرستگان تحت مالکیت غیرمستقیم (تحت مالکیت یا مدیریت ازطریق گروه) را اضافه کنید:

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

فیلتر کردن نتایج هنگام فهرست کردن مکان‌ها

HTTP

می‌توانید از فیلترها برای محدود کردن نتایجی که هنگام فراخوانی accounts.locations.list برگردانده می‌شوند استفاده کنید. برای فیلتر کردن درخواست، عبارت فیلتر را به نشانی وب پایه اضافه کنید، همان‌طور که در این مثال نشان داده شده است:

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

نحو پُرسمان پایه

محدودیت دارای نحو زیر است: <field><operator><value>، که در آن عملگر یا EQUALS (=) یا HAS (:) است. عملگرهای EQUALS (=) و HAS (:) برای همه فیلدها به‌جز locationName معادل هستند (جدول زیر را ببینید).

علامت‌های نقل‌قول به‌صورت «%22» و فاصله‌ها به‌صورت علامت جمع (+) کدگذاری می‌شوند.

مگر اینکه طور دیگری ذکر شده باشد، همه مقایسه‌ها مقایسه‌های نشانه‌ای غیرحساس به حروف بزرگ و کوچک هستند. برای مثال، «4 drive» با «4, Privet Drive» مطابقت دارد.

ترکیب کردن چند فیلد در پُرسمان فیلتر

میانای برنامه‌سازی کاربردی اجازه می‌دهد AND همه محدودیت‌های فیلدها را متصل کند. اما وقتی نوبت به کلیدواژه OR می‌رسد، همه محدودیت‌ها باید بر همان فیلد اعمال شود. برای مثال: locationName=A یا labels=B مجاز نیست.

مثال

مثال زیر عبارت فیلتری را نشان می‌دهد که همه مکان‌های دارای نام «Pepé Le Pew» را برمی‌گرداند. این مکان دسته‌های «رستوران فرانسوی» یا «رستوران اروپایی» و برچسب «تازه افتتاح‌شده» را نشان می‌دهد.

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

جستجو براساس فاصله یا حساب

مثال زیر نشان می‌دهد که چگونه می‌توانید مکان‌ها را در فاصله مشخصی از یک نقطه جغرافیایی جستجو کنید:

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

برای فیلتر کردن مکان‌های در محدوده ۱۰۰۰ مایلی بولدر، کلرادو، ایالات متحده:

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

فهرست همه فیلدهای فیلتر پشتیبانی‌شده

در زیر فهرست کاملی از همه فیلدهایی که می‌توانند برای فیلتر کردن استفاده شوند ارائه شده است:

فیلدها توضیحات و مثال
فیلدهای منطبق با رشته
title

نام کسب‌وکار در دنیای واقعی

https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=title:"Bajis" (با هر نام مکانی که «Bajis» زیررشته آن باشد مطابقت دارد)

https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=title="Bajis" (با هر نام مکانی که «Bajis» به‌عنوان نشانه/کلمه در آن باشد مطابقت دارد)

categories

ترکیب دسته اصلی و دسته‌های تکمیلی. توجه داشته باشید که «gcid:» باید حذف شود. اگر چند دسته وجود داشته باشد، این فیلتر درصورتی مطابقت دارد که حداقل یک دسته با این الگو مطابقت داشته باشد.

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

phone_numbers.primary_phone

شماره تلفن اصلی در قالب E.164 (برای مثال: «‎+441234567890»).

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

storefront_address.region_code

کد منطقه CLDR کشور/منطقه نشانی

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

storefront_address.administrative_area

بالاترین بخش اداری که برای نشانی‌های پستی کشور یا منطقه استفاده می‌شود

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

storefront_address.locality

بخش شهر/شهرک نشانی

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

storefront_address.postal_code

کد پستی نشانی

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

metadata.place_id

اگر این مکان تأیید شده باشد و به Google Maps متصل باشد/در آن نشان داده شود، این فیلد برابر با شناسه مکان برای آن مکان است

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

openInfo.status

نشان می‌دهد که آیا «مکان» درحال‌حاضر برای کسب‌وکار باز است یا نه (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

مجموعه‌ای از رشته‌های قالب آزاد که به شما امکان می‌دهد کسب‌وکارتان را برچسب‌گذاری کنید. برخلاف همه فیلدهای دیگر، این مقدار باید دقیقاً با برچسب کامل مطابقت داشته باشد، ازجمله حروف بزرگ و کوچک و نه فقط یک کد. مثلاً اگر برچسب «XX YY» باشد، نه «XX» و نه «xx yy» مطابقت نخواهد داشت.

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

storeCode

شناسه خارجی برای این مکان که باید در حساب مشخصی منحصربه‌فرد باشد

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

عملکردها
distance

به شما امکان می‌دهد براساس فاصله مکان از یک نقطه جغرافیایی فیلتر کنید.

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

مرتب‌سازی براساس فیلد پرسمان

می‌توانید نتایج را براساس نام کسب‌وکار یا کد فروشگاه، به‌ترتیب صعودی یا نزولی مرتب کنید. معیارهای چندگانه سفارش با کاما در رشته orderBy از هم جدا می‌شوند، مانند مثال زیر:

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

وصله کردن مکان

از My Business Business Information API برای به‌روزرسانی یک یا چند فیلد برای مکان با locations.patch استفاده کنید.

برای تغییر یک یا چند فیلد برای مکان، از موارد زیر استفاده کنید:

HTTP

فیلدها و مقادیر به‌روزشده را با فیلد مکان اضافه کنید و از فهرست جداشده با کاما از فیلدهای به‌روزشده به‌عنوان مقدار برای fieldMask استفاده کنید.

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