【问题标题】:implementing google knowledge graph on android在android上实现google知识图谱
【发布时间】:2016-04-06 19:15:38
【问题描述】:

我已经在 Android 的 Google Knowledge Graph Search API 上苦苦挣扎了 2 天,根据 Google here 我所要做的就是下载 Google Knowledge Graph Search API zip here 并将其导入我的项目,但对于 Android 我是建议使用Google Play Services API 解释这里developers.google.com/api-client-library/java/google-api-java-client/setup#android (对不起这个链接,因为低统计我不允许发布超过2个链接,所以我即兴创作),然后提供一段java代码可以用来查询API下面是代码

private void doSearch() {


System.out.println("search started");
Properties properties = new Properties();

try

{
    properties.load(new FileInputStream("kgsearch.properties"));
    HttpTransport httpTransport = new NetHttpTransport();
    HttpRequestFactory requestFactory = httpTransport.createRequestFactory();
    JSONParser parser = new JSONParser();
    GenericUrl url = new GenericUrl("https://kgsearch.googleapis.com/v1/entities:search");
    url.put("query", "Taylor Swift");
    url.put("limit", "10");
    url.put("indent", "true");
    url.put("key", properties.get(ConstantsUtil.GOOGLE_API_KEY));
    HttpRequest request = requestFactory.buildGetRequest(url);
    HttpResponse httpResponse = request.execute();
    JSONObject response = (JSONObject) parser.parse(httpResponse.parseAsString());
    JSONArray elements = (JSONArray) response.get("itemListElement");

    for(int i = 0; i < elements.length(); i++)
    {
        System.out.println(JsonPath.read(elements.getJSONObject(i), "$.result.name").toString());
    }

}catch(Exception e)
{
    e.printStackTrace();
}

System.out.println("search ended");
}

但是这段代码不完整,当我运行它时,它抱怨缺少文件kgsearchjava.io.FileNotFoundException: /kgsearch.properties: open failed: ENOENT (No such file or directory),但我的问题是如何修复它?有没有人使用过Google Knowledge Graph API 和我可以使用的更有效的示例代码?如果有什么请帮忙。

【问题讨论】:

  • 这是一个基本的 Java 编程问题。我恭敬地建议多讨论一下你的目标是什么,这会让你得到一个更有用的答案。当我说“是否有任何工作示例代码”对于 Google 来说比 Stack 更重要时,我的意思是你没有冒犯。
  • @DaveKaye 我在问以前使用过它的人以及他们如何使用它,我知道这是一个基本的 java 问题,我可以轻松创建文件但我不知道何时创建它并且如果我每次要执行搜索时都必须创建它,最重要的是文件所包含的内容,您可能会更有帮助并帮助兄弟,我已经提供了链接,显示我已经研究了多少试图理解它的主题,它的不像我不做研究就问
  • @ChromeLanta - 查看示例代码,它在哪里使用了 Properties 对象?示例代码如何使用它?在第一个链接示例中,它似乎只是加载了 API_KEY,至少尝试硬编码 API 密钥字符串作为替换,看看会发生什么。
  • @MorrisonChang 我只是自己观察了一下,但没有认真对待,但现在你提到了,让我试试。
  • @MorrisonChang 谢谢它的工作,你应该把它作为答案发布,事实上你应该

标签: java android api google-maps


【解决方案1】:

您似乎被Properties 对象挂断了。如果您查看您的示例代码,它似乎只是在 GOOGLE_API_KEY 中加载。如果在其他地方引用了 Properties 对象,我会查看需要设置什么才能使其余代码正常工作。

您应该尝试在那里对您的 GOOGLE_API_KEY 字符串进行硬编码,看看是否需要这样做。

示例代码很可能试图展示一种正确的方法来处理存储为属性文件中的条目的 API_KEY。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-19
    • 2015-06-10
    • 1970-01-01
    • 2022-11-29
    • 1970-01-01
    相关资源
    最近更新 更多