我查看了几个用于获取特定位置的餐馆菜单的API,并确定Locu API最适合我。
我正在尝试在locu网站上列出的基本示例:
curl -X POST https://api.locu.com/v2/venue/search/ -d '{"fields":["name","menu_items","location","categories","description"],"menu_item_queries":[{"price":{"$lt":6},"name":"burrito"}],"venue_queries":[{"location":{"locality":"San Francisco"}}],"api_key":"MY_API_KEY"}'
其中,MY_API_KEY是我在注册时收到的API_KEY。 只要我包含" menu_items"参数,我一直收到回复:
{"status": "error", "http_status": 400, "error": "The requested \"menu_items\" field is either invalid or your account does not have permissions to access it."}
我没有遇到任何关于我需要做什么才能获得查询权限的文档" menu_items"。如果有人能指出我正确的方向,我将非常感激。
我已经在这里遇到了一些相对陈旧的问题,他们没有解决这个问题。
此外,这里似乎没有Locu api的标签。我将尝试用一些通用标签标记问题。请原谅我。
答案 0 :(得分:2)
我知道这是一个老问题,但我发现解决方案是在场地搜索中请求“菜单”字段。 API将返回“menu_items”作为菜单的子对象。
答案 1 :(得分:-1)
`
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
public class NetClientGet {
public static void main(String[] args) {
try{
String result;
URL url = new URL("https://api.locu.com/v1_0/venue/search/?api_key=" +apiKey);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Accept", "application/json");
if (conn.getResponseCode() != 200) {
throw new RuntimeException("Failed : HTTP error code : " + conn.getResponseCode());
}
BufferedReader br = new BufferedReader(new InputStreamReader(
(conn.getInputStream())));
String output;
System.out.println("Output from Server .... \n");
while ((output = br.readLine()) != null) {
System.out.println(output);}
}
conn.disconnect();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}`