使用场景
Google 地图预订 API 提供了两种方法,可用于以编程方式检索各个商家的状态,以用于各种行动中心集成或本地服务广告资源。
Merchant Status API 的应用场景:
- 增强现有客户关系管理工具,向客户展示其库存在 Actions Center 平台上的展示方式。
- 构建一个信息中心,用于跟踪商家的商品目录状态和匹配状态。
- 以编程方式检索商家的匹配状态和可预订状态,并修正任何不正确的信息,以提高数据质量。
商家状态包含哪些内容
MerchantStatus 包含以下信息:
- 商家库存状态:适用于提供预订和/或等候名单功能的商家。
- 商家匹配状态:包含有关匹配的商家详情的信息
- 仅适用于 Google 本地生活服务广告)匹配的商家服务提供商:包括客户 ID 和服务类别。
- 用于演示商家如何通过“通过 Google 预订”功能展示的网址。
查找单个商家的状态
您可以使用 inventory.partners.merchants.getStatus 获取单个商家的状态:
GET https://mapsbooking.googleapis.com/v1alpha/inventory/partners/{partnerId}/merchants/{merchantId}/status以下是 Python 代码示例(如需查看更多语言的示例,请点击此处):
from google.auth.transport.requests import AuthorizedSession from google.oauth2 import service_account credentials = service_account.Credentials.from_service_account_file( './your_key.json') scoped_credentials = credentials.with_scopes( ['https://www.googleapis.com/auth/mapsbooking']) authed_session = AuthorizedSession(scoped_credentials) response = authed_session.get('https://partnerdev-mapsbooking.googleapis.com' + '/v1alpha/inventory/partners/123456789/merchants/001/status')
MerchantStatus 响应的示例如下所示:
{ "name": "partners/123456789/merchants/001/status", "merchantName": "Foo Bar Restaurant", "inputGeoInfo": { "unstructured_address": "123 Foo Bar Street, Mountain View" }, "processingStatus": "COMPLETED", "bookingStatus": { "hasValidFutureInventory": true }, "waitlistStatus": { "hasValidWaitlistService": true } "geoMatch": { "name": "Foo Bar Restaurant", "formattedAddress": "123 Foo Bar St, Mountain View, CA 94043", "placeId": "ChIAAAAAAAAABBBBBBBB" }, "directUrls": [ { "type": "BOOKING", "url": "https://reserve-partnerdev.sandbox.google.com/maps/reserve/v/dine/m/Nwaaaaa" }, { "type": "WAITLIST", "url": "https://reserve-partnerdev.sandbox.google.com/maps/reserve/v/wait/c/iDbbbbb" } ] }
批量检索商家状态
您可以使用 inventory.partners.merchants.status.list 检索所有商家的状态,也可以检索满足特定商品目录/匹配条件的某组商家的状态。例如,您可以进行以下调用,以获取所有具有有效未来日期预订资源但未匹配的商家:
GET https://mapsbooking.googleapis.com/v1alpha/inventory/partners/{partnerId}/merchants/status?pageSize=50&bookingInventoryStatusRestrict=HAS_VALID_FUTURE_INVENTORY&geoMatchRestrict=GEO_UNMATCHED示例回答如下所示:
{ "merchantStatuses": [ { "name": "partners/123456789/merchants/002/status", "merchantName": "Bar Foo Restaurant", "inputGeoInfo": { "unstructured_address": "234 Bar Foo Street, Mountain View" }, "processingStatus": "COMPLETED", "bookingStatus": { "hasValidFutureInventory": true }, "waitlistStatus": {}, }, ... { "name": "partners/123456789/merchants/080/status", "merchantName": "Baz Restaurant", "inputGeoInfo": { "unstructured_address": "345 Baz Street, Mountain View" }, "processingStatus": "COMPLETED", "bookingStatus": { "hasValidFutureInventory": true }, "waitlistStatus": { "hasValidWaitlistService": true }, }, ], "nextPageToken": "AAABBBB" }
此响应将包含 50 个满足过滤条件并按 merchant_id 排序的 MerchantStatus。响应中还包含用于查询下一页的页面令牌(如果不是最后一页)。
请注意:过滤条件应在所有网页上保持一致。
最佳做法
由于商家状态在大多数情况下不会频繁更改,因此建议缓存检索到的结果,并定期(例如每隔几小时)通过新查询检索这些结果。如果每秒的请求数量过高,操作中心可能会限制您的查询。