使用ID搜索Google Knowledge Graph

时间:2018-03-16 12:32:59

标签: javascript jquery vue.js google-api google-knowledge-graph

我已经存储了谷歌知识图谱API(GKGA)的一些搜索结果 以ids的形式,GKGA返回。

现在我想再次使用id获取整个Result,但这似乎不起作用。经过一些研究,我发现了一个可以在这里工作的查询: How to use Google Knowledge Graph API

我的请求主要有点不同:

https://kgsearch.googleapis.com/v1/entities:search?callback=jQuery321016748583817510942_1521200076900&indent=true&key= {MY_API_KEY}&安培; IDS =千克:/米/ 031sc&安培; _ = 1521200076901

所提出的工作要求是:

https://kgsearch.googleapis.com/v1/entities:search?ids=%2Fm%2F014nm_&key= {API-KEY}

我能看到的主要区别是ID不同:

我是:

  • 我的是:kg:/ m / 031sc
  • 他是:kg:/ m / 014nm_但在网址中是%2Fm%2F014nm_

所以我尝试在id和整个url上使用encodeURI,但没有区别。

所以这就是问题:我需要对我的身份证做些什么才能得到GKGA的结果?

目前我正在实现我的请求:(如果你想知道我的请求中的JQuery部分 - url)

let service_url = 'https://kgsearch.googleapis.com/v1/entities:search';
let requestParams = {
                'indent': true,
                'key': '{API-KEY}',
                "ids":"kg:/m/031sc"
            };
$.getJSON(service_url + '?callback=?', requestParams, (response) => {
}).done((response) => {
      console.log('Response is: ' + JSON.stringify(response));
});

1 个答案:

答案 0 :(得分:1)

对我有用的解决方案是使用'之后的部分:'作为实际的身份证。 这让以下解决方案支持多于id:

    let service_url = 'https://kgsearch.googleapis.com/v1/entities:search';
    let dataurl = 'key={API-KEY}'; //just the key, not the moustaches '{','}'
    for (let i = 0; i < allIds.length; i++) {
        dataurl += '&ids='+ allIds[i].split(':')[1];
    }
    $.getJSON(service_url + '?callback=?', dataurl, (response) => {
    }).done((response) => {});