不支持的字段名称“网站”(查找地点 - Google Places API)

问题描述 投票:0回答:1

我正在尝试查找带有

website
的地点列表。因此,像“纽约咖啡馆”这样的内容应该返回多个具有网站 URL 的位置。我了解
website
字段属于联系 SKU。

但是,每当我使用

website
字段进行调用时(正如 Find Places API 文档中所述),它都会抛出此错误:

{
   "candidates" : [],
   "error_message" : "Error while parsing 'fields' parameter: Unsupported field name 'website'. ",
   "status" : "INVALID_REQUEST"
}

这是返回此错误的 URL:

https://maps.googleapis.com/maps/api/place/findplacefromtext/json?fields=formatted_address%2Cname%2Crating%2Copening_hours%2Cwebsite&input=Cafes%20in%20NewYork&inputtype=textquery&key=MYAPIKEY

请注意,我已在上述 URL 中删除了我的 API 密钥,并替换为文本“MYAPIKEY”。

任何人都可以看到上面的查询并了解为什么字段名称 website 无效,因为“Find Place”文档中已经提到“website”确实是一个有效字段?

还是我做错了什么?

这是我提到的 Find Place API 文档:https://developers.google.com/maps/documentation/places/web-service/search-find-place#Place-website

我想要的只是通过一个具有网站的 API 调用获得至少 5 个以上的结果。所以我正在寻找有网站的地方。

非常感谢您的帮助!

web-services maps google-places-api
1个回答
0
投票

地点搜索/查找地点请求仅返回地点详细信息请求返回的字段的子集

如果地点搜索未返回您想要的字段,您可以使用地点搜索获取

place_id
,然后使用该地点 ID 发出 地点详细信息 请求。

参考:https://developers.google.com/maps/documentation/places/web-service/search-find-place#fields

如果您检查放置数据字段文档,它会这样说:

地点搜索附近搜索文本搜索请求均返回地点详细信息请求返回的字段的子集。这些方法返回以下字段:

地址组件、adr_地址、路边取货、 current_opening_hours、送货、dine_in、editorial_summary、 格式化电话号码、国际电话号码、 opening_hours.periods、opening_hours.special_days、 opening_hours.type、opening_hours.weekday_text、可预订 secondary_opening_hours、评论、serve_beer、serve_breakfast、 供应早午餐,供应晚餐,供应午餐,
serve_vegetarian_food、serve_wine、外卖、类型、网址,
用户评级总计、utc_offset_分钟、附近、网站
轮椅_无障碍_入口,

如您所见,网站包含在列表中,您获取它们的唯一方法是使用地点详细信息。您可以先使用

Find Place
获取 place_id,然后使用 Place Details 以及您必须获取网站的
place_id

https://maps.googleapis.com/maps/api/place/findplacefromtext/json?fields=place_id&input=Cafes%20in%20NewYork&inputtype=textquery&key=API_KEY

这将返回

place_id
ChIJcaZiKLVZwokRmPzP29O2DNU

然后使用

place_id
进行地点详细信息请求:

https://maps.googleapis.com/maps/api/place/details/json?fields=name%2Crating%2Cformatted_address%2Cwebsite%2Copening_hours&place_id=ChIJcaZiKLVZwokRmPzP29O2DNU&key=API_KEY

这将返回您想要的所有内容,包括网站。

但是既然您提到您想要获取至少五个结果,您必须注意,Find Place 不适合您,因为它的唯一目的是查找与您的查询相关的单个位置。因此,我建议您使用文本搜索,因为它能够返回与您的文本查询相关的多个结果。但这没有

fields
支持,因此可能会花费更多。我建议如果您想降低一些成本,请遵循上述解决方案。

我希望这有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.