本教學課程將說明如何建立及編輯位置資料。My Business Business Information API 可讓您執行下列操作:
地點可用於廣告,但必須經過驗證,才能在搜尋聯播網和地圖上顯示。位置資料由 accounts.locations 集合代表。
事前準備
使用「我的商家」商家資訊 API 前,您必須先註冊應用程式並取得 OAuth 2.0 憑證。如要進一步瞭解如何開始使用 My Business Business Information API,請參閱「基本設定」。
建立地點
您可以使用 My Business Business Information API,透過 accounts.locations.create 為商家建立新地點。
如要建立位置,請使用下列指令:
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 刪除地點。
如要刪除地點,請使用下列指令:
DELETE https://mybusinessbusinessinformation.googleapis.com/v1/locations/{locationId}
依名稱取得位置
如果您的帳戶與多家商家相關聯,建議您取得單一地點。您可以依商家名稱篩選,藉由 locations.get 取得特定地點。
如要依名稱取得地點,請使用下列指令。您必須指定 readMask,才能擷取特定欄位。:
GET https://mybusinessbusinessinformation.googleapis.com/v1/locations/{locationId}?readMask={commaSeparatedFieldsToRetrieve}
傳回 Google 地圖版本
如要傳回 Google 地圖版本的位置資訊,請在要求網址中附加 googleUpdated
,如以下範例所示:
GET https://mybusinessbusinessinformation.googleapis.com/v1/locations/{locationId}:googleUpdated?readMask={commaSeparatedFieldsToRetrieve}
如果沒有結果,系統會傳回 404 NOT FOUND
HTTP 狀態碼。如要進一步瞭解如何管理 Google 更新,請參閱這篇文章。
列出位置
如果你管理一或多個地點,建議你列出與帳戶相關聯的所有地點。使用 accounts.locations.list API 列出與使用者相關聯的所有位置。
如要列出已驗證使用者直接擁有或管理的所有地點,請使用下列方法:
GET https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}
在要求網址中使用帳戶的 '-'
萬用字元,納入間接擁有的商家資訊 (透過群組擁有或管理):
GET https://mybusinessbusinessinformation.googleapis.com/v1/accounts/-/locations?readMask={commaSeparatedFieldsToRetrieve}
列出位置時篩選結果
您可以使用篩選器限制呼叫 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」相符。
在篩選器查詢中組合多個欄位
API 允許 AND 連結所有欄位限制。不過,如果是 OR 關鍵字,則所有限制都必須套用至同一個欄位。例如:locationName=A
OR labels=B
是禁止的。
範例
以下範例顯示篩選器運算式,可傳回名稱為「Pepé Le Pew」的所有地點。它會顯示「french_restaurant」或「european_restaurant」類別,以及「newly open」標籤。
locationName=%22Pepé+Le+Pew%22+AND+ (categories=%22french_restaurant%22+OR+ categories=%22european_restaurant%22)+AND+ labels=%22newly+open%22
依距離或帳戶搜尋
以下範例說明如何搜尋與地理位置點相距一定距離的區域:
GET https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=distance(latlng, geopoint({latitude}, {longitude}))<{distance}
如要篩選美國科羅拉多州博爾德以 1000 英里為半徑的範圍內位置,請按照下列步驟操作:
GET https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=distance(latlng, geopoint(40.01, -105.27))<1000.0
所有支援的篩選器欄位清單
以下是可用於篩選的所有欄位完整清單:
欄位 | 說明和範例 |
---|---|
字串比對欄位 | |
title |
商家實際名稱
|
categories |
主要類別和其他類別的組合。 請注意,您必須省略「gcid:」。如果有多個類別,只要至少有一個類別符合這個模式,這個篩選器就會相符。
|
phone_numbers.primary_phone |
主要電話號碼,格式為 E.164 (例如:+441234567890)。
|
storefront_address.region_code |
地址所在國家/地區的 CLDR 區域代碼
|
storefront_address.administrative_area |
最高行政區,用於國家/地區的郵遞地址
|
storefront_address.locality |
地址的縣市/鄉鎮部分
|
storefront_address.postal_code |
地址的郵遞區號
|
metadata.place_id |
如果這個地點已通過驗證,且已連結至/顯示在 Google 地圖上,這個欄位就會等同於該地點的地點 ID
|
openInfo.status |
指出位置目前是否營業 (
|
labels |
一組自由格式字串,可用來標記商家。與其他所有欄位不同,這個值必須完全符合完整標籤 (包括大小寫),而非僅是符記。例如,如果標籤為「XX YY」,則「XX」或「xx yy」都不會相符。
|
storeCode |
這個地點的外部 ID,必須在特定帳戶中不重複
|
函式 | |
distance |
可讓您根據地點與地理位置點的距離進行篩選。
|
依查詢欄位排序
您可以依商家名稱或商店代碼,以遞增或遞減順序排序結果。在 orderBy
字串中,多個排序條件會以逗號分隔,如以下範例所示:
GET https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&orderBy=locationName,storeCode
修補位置
使用 My Business Business Information API,透過 locations.patch 更新地點的一或多個欄位。
如要變更一或多個地點欄位,請使用下列指令:
使用位置欄位新增欄位和更新值,並使用以逗號分隔的更新欄位清單做為 fieldMask
的值。
PATCH https://mybusinessbusinessinformation.googleapis.com/v1/locations/{locationId}?languageCode=language&validateOnly=True|False&updateMask=title { "title": "Google Shoes" }