我正在尝试设置Trip-Advisor API以将附近的酒店检索到一个位置名称。在下面列出的文档中,它向您展示了如何通过ID获取位置,我已经设置了ID,并使用下面的链接成功地进行了操作。
$apiRequest = "http://api.tripadvisor.com/api/partner/2.0/location/60745/hotels?key=".$key
现在我需要一个类似的结果,但搜索的是名称而不是位置ID。这样,我可以在用户输入位置名称和搜索的地方放置一个输入字段。在文档(链接如下)中,它在页面底部附近提到了位置名称,但我似乎无法实现它。我想我可能误解了它是API的的新内容
https://developer-tripadvisor.com/content-api/documentation/location/
我尝试用位置名称替换ID,但不出所料,这失败了。
我还试着用参数URL - /location-name/manchester/ - URL
将位置名称放入其中
我会发布更新的尝试,因为我做他们,
感谢
不幸的是,Trip Advisor没有提供将搜索字符串转换为位置ID的方法。然而,Trip Advisor允许您使用地图/端点按纬度/经度搜索附近的结果。在响应中会有一个"Ancestors"对象,看起来像这样:
"ancestors": [
{
"abbrv": null,
"level": "City",
"name": "Boston",
"location_id": "60745"
},
{
"abbrv": "MA",
"level": "State",
"name": "Massachusetts",
"location_id": "28942"
},
{
"abbrv": null,
"level": "Country",
"name": "United States",
"location_id": "191"
}
],
"bearing": "north",
"longitude": "-71.09922",
"rating": null,
"latitude": "42.33227",
"ranking_data": null
}
如您所见,其中包含城市和州的位置ID。有了这些信息,你可以获取用户的搜索查询,将其转换为lat/lons(谷歌地理编码Api),点击Trip Advisor Api地图端点,获取城市位置ID,然后用它搜索附近的酒店。
显然,这是非常迂回的,需要3个单独的api调用,但这是将搜索查询解析为位置ID的唯一编程方法。(在我看来,比建议的手动ID收集方法要好得多)
目的地(或地理位置)是地理位置。这可以是一个国家、州、省、地区或城市。您可以通过导航到目的地的页面并在URL中的"g"参数后查找号码,在TripAdvisor上识别地理位置ID。例如,波士顿市的地理位置ID为60745,如下URL所定义:
http://www.tripadvisor.com/Tourism-g60745-Boston_Massachusetts-Vacations.html
POI包括列出的住宿、景点和餐厅,可以在TripAdvisor上查看。您可以通过导航到TripAdvisor上的属性页面并在URL中的"d"参数后查找数字来查找TripAdvisor POI的位置ID。例如,波士顿英联邦酒店的位置ID为258705。
http://www.tripadvisor.com/Hotel_Review-g60745-d258705-Reviews-Hotel_Commonwealth-Boston_Massachusetts.html
请注意,POI的URL还包括其所在城市的地理位置ID(在"g"之后)。
位置ID映射
TripAdvisor不支持为其内容API用户提供任何服务,将合作伙伴或外部位置ID映射到目的地或POI的TripAdvisor位置ID。
阅读:http://developer-tripadvisor.com/content-api/locations/