Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试在Android上访问Google知识图API时出错_Android_Api_Freebase - Fatal编程技术网

尝试在Android上访问Google知识图API时出错

尝试在Android上访问Google知识图API时出错,android,api,freebase,Android,Api,Freebase,我一直在尝试使用Google Knowledge Graph API,这似乎是一个顽固的API,因为我找不到任何教程,Google找到的唯一教程似乎根本不起作用,我创建了一个API密钥,启用了Google Knowledge API,但现在我遇到了这个错误 ` com.google.api.client.http.HttpResponseException: 403 Forbidden ﹕ { "error": { "code": 403, "message": "Requests from

我一直在尝试使用Google Knowledge Graph API,这似乎是一个顽固的API,因为我找不到任何教程,Google找到的唯一教程似乎根本不起作用,我创建了一个API密钥,启用了Google Knowledge API,但现在我遇到了这个错误

` com.google.api.client.http.HttpResponseException: 403 Forbidden
 ﹕ {
 "error": {
"code": 403,
"message": "Requests from this Android client application \u003cempty\u003e are blocked.",
[
{
"message": "Requests from this Android client application \u003cempty\u003e are blocked.",
 "domain": "global",
"reason": "forbidden"
}
],
 "status": "PERMISSION_DENIED"
}
}`
com.google.api.client.http.HttpResponseException: 400 Bad Request
{
"error": {
"code": 400,
"message": "API key not valid. Please pass a valid API key.",
"errors": [
{
"message": "API key not valid. Please pass a valid API key.",
"domain": "global",
"reason": "badRequest"
}
],
"status": "INVALID_ARGUMENT"
}
}
我正在使用的代码

 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",API_KEY);
有人知道怎么解决这个问题吗?还有一件事,当我像这样直接使用API键
url.put(“key”,API\u key)
时,当我从
values
文件像这样加载API键
url.put(“key”,R.string.API\u key)
时,它给了我这个错误

` com.google.api.client.http.HttpResponseException: 403 Forbidden
 ﹕ {
 "error": {
"code": 403,
"message": "Requests from this Android client application \u003cempty\u003e are blocked.",
[
{
"message": "Requests from this Android client application \u003cempty\u003e are blocked.",
 "domain": "global",
"reason": "forbidden"
}
],
 "status": "PERMISSION_DENIED"
}
}`
com.google.api.client.http.HttpResponseException: 400 Bad Request
{
"error": {
"code": 400,
"message": "API key not valid. Please pass a valid API key.",
"errors": [
{
"message": "API key not valid. Please pass a valid API key.",
"domain": "global",
"reason": "badRequest"
}
],
"status": "INVALID_ARGUMENT"
}
}

我已经尝试了我所知道的一切,但没有任何帮助,因为其他谷歌API对我有用,但有了Graph API,我似乎需要几周的时间才能完成这项工作。

你的第二个问题让我分心。
R.string.API_KEY
的值是编译时生成的Android资源索引值,而不是您的字符串。第一部分-如何生成API密钥。你是如何运行你的测试的。我感觉到以下说明中缺少了一个或多个内容:比如
包名
@MorrisonChang那么插入api的正确方法是什么?通过资源字符串还是像另一个示例中那样直接将其放在那里?首先,我通过
谷歌控制台中的终端
am从我的机器上获取
sha1指纹
,启用所有
api
am使用,然后导航到凭证,在那里我创建了一个
android密钥
,添加我的包名,比如
com.me.myProject
和我的
sha1指纹
,然后点击
create
按钮我注意到的是我的
API键
是可以的,当我从谷歌控制台禁用
knowledge graph API
时,我会收到这个错误消息
“Project尚未激活kgsearch.googleapis.com API。请为project启用API
,所以现在我不知道问题出在哪里,更糟糕的是谷歌提供的代码。运气好吗?我面临着同样的问题!需要帮助它对我有用。在创建API密钥时,我正在API Manager-Credentials下创建浏览器密钥,而不是Android密钥。出于某种奇怪的原因,你的第二个问题会分散你的注意力。
R.string.API_KEY
的值是编译时生成的Android资源索引值,而不是您的字符串。第一部分-如何生成API密钥。你是如何运行你的测试的。我感觉到以下说明中缺少了一个或多个内容:比如
包名
@MorrisonChang那么插入api的正确方法是什么?通过资源字符串还是像另一个示例中那样直接将其放在那里?首先,我通过
谷歌控制台中的终端
am从我的机器上获取
sha1指纹
,启用所有
api
am使用,然后导航到凭证,在那里我创建了一个
android密钥
,添加我的包名,比如
com.me.myProject
和我的
sha1指纹
,然后点击
create
按钮我注意到的是我的
API键
是可以的,当我从谷歌控制台禁用
knowledge graph API
时,我会收到这个错误消息
“Project尚未激活kgsearch.googleapis.com API。请为project启用API
,所以现在我不知道问题出在哪里,更糟糕的是谷歌提供的代码。运气好吗?我面临着同样的问题!需要帮助它对我有用。在创建API密钥时,我正在API Manager-Credentials下创建浏览器密钥,而不是Android密钥。出于某种奇怪的原因,它正在发挥作用