如何通过餐厅链接获取Zomato餐厅ID?

时间:2017-05-27 09:22:16

标签: zomato-api

我想了解佐马托一家餐馆的细节。我有它的链接作为输入(https://www.zomato.com/mumbai/fantasy-the-cake-shop-kalyan?utm_source=api_basic_user&utm_medium=api&utm_campaign=v2.1)。通过浏览Zomato API的文档,我找不到获得它的方法。

我尝试使用搜索API搜索餐馆,但它会返回很多结果。

任何帮助将不胜感激

4 个答案:

答案 0 :(得分:2)

我遇到了与您描述的问题相同的问题。 Zomato的API方法至少很奇怪。如果您事先不知道res_id,那么获取有关餐厅的任何信息几乎是不可能的,而且由于Zomato会拒绝访问,因此无法解析。

这对我有用:

  1. 从Zomato API凭据(https://developers.zomato.com/api)中获取用户密钥
  2. 通过API(https://developers.zomato.com/api/v2.1/search?entity_id=84&entity_type=city&q=RESTAURANT_URL&category=7%2C9)搜索餐厅网址。您越具体,就会得到越好的结果(此网址由城市指定为布拉格(ID = 84)和类别每日菜单(ID = 7)午餐(ID = 9)。如果有可能,请指定城市,类别或美食,这很有帮助,但不是必须的。请不要忘记在标题中定义GET方法。 / li>
  3. 循环或过滤json结果,然后搜索所需的url。您可能需要使用valueOf()方法来搜索相同的url。请注意,您可能需要在所需网址的末尾添加“ ?utm_source = api_basic_user&utm_medium = api&utm_campaign = v2.1 ”,以使其具有相同的格式。通过Zomato API文档页面进行检查。
for (i in body.restaurants) {
    var url_wanted = restaurant_url + '?utm_source=api_basic_user&utm_medium=api&utm_campaign=v2.1'
    var url_in_json = body.restaurants[i].restaurant.url;
    if (url_wanted.valueOf() == url_in_json.valueOf()) {
        var restaurant_id = body.restaurants[i].restaurant.id;
    }
    console.log('Voala! We have res_id:' + restaurant_id);
}
  1. 那里有。不过可能会更容易。

希望有帮助!

答案 1 :(得分:1)

这是一个两步过程:

  1. 通过/ cities API查找餐馆的城市ID,在您的情况下,孟买的城市ID。这是一个简单的查询搜索。
  2. 在/ search API中使用上述API调用中的城市ID,例如https://developers.zomato.com/api/v2.1/search?entity_type=city&entity_id=3&q=fantasy%20the%20cake%20shop%20kalyan
  3. 这将提供有关餐馆的所有基本信息。

答案 2 :(得分:0)

查看页面的源代码并搜索window.RES_ID

答案 3 :(得分:0)

一旦有了rseraunt页面的网址,您就可以简单地查找名为“ window.RES_ID”的javascript对象属性,并在api调用中进一步使用它。