我正在使用谷歌图书API KEY for android通过我的android应用程序加载图书数据。但我收到下面列出的错误。
但是,-如果我从API CONSOLE中删除证书,则查询有效(例如,使所有应用程序都可以接受API KEY)。尽管我输入的{SHA1};{包名称}信息是正确的。-如果我将API KEY用于浏览器,则此工作原理。
因此,据我所知,我不能在httpclient方法中将密钥作为url的一部分发送。可能是我需要通过标题或其他方式发送。但我不知道怎么做。
有人能帮忙吗?
代码:
String link = "https://www.googleapis.com/books/v1/volumes?key=MY_KEY&q="+query+"&projection=full&langRestrict=en&maxResults=1";
HttpGet get = new HttpGet(link);
HttpParams httpParameters = new BasicHttpParams();
int timeoutConnection = 10000;
HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection);
HttpConnectionParams.setSoTimeout(httpParameters, timeoutConnection);
HttpClient httpclient = new DefaultHttpClient(httpParameters);
HttpResponse response = httpclient.execute(get);
HttpEntity entity = response.getEntity();
查询:
https://www.googleapis.com/books/v1/volumes?key=MY_API_KEY&q=intitle:'The+Old+Man+And+The+Sea'+inauthor:'Ernest+Hemingway'&projection=full&langRestrict=en&maxResults=1
结果:
{
"error": {
"errors": [
{
"domain": "usageLimits",
"reason": "accessNotConfigured",
"message": "Access Not Configured"
}
],
"code": 403,
"message": "Access Not Configured"
}
}
使用HttpGet可以获得与接受答案相同的结果:
String API_KEY = "..."; // Google Books API Public key
String ISBN = "...";
String bookSearchString = "https://www.googleapis.com/books/v1/volumes?q=isbn:" + ISBN;
HttpClient bookClient = new DefaultHttpClient();
try
{
//get the data
HttpGet bookGet = new HttpGet(bookSearchURL);
bookGet.addHeader("key", API_KEY);
HttpResponse bookResponse = bookClient.execute(bookGet);
StatusLine bookSearchStatus = bookResponse.getStatusLine();
if (bookSearchStatus.getStatusCode() == 200)
{
//we have a result
HttpEntity bookEntity = bookResponse.getEntity();
...
}
} catch (Exception e)
{
e.printStackTrace();
}
在报头中提供密钥与根本不提供密钥相同。检查开发人员api控制台,您将不会看到使用该api密钥的成功查询。总之,标头中的API密钥并不能解决问题。如果你不想遵循谷歌的规则,只需在没有按键的情况下进行查询。
可能与之相关的人。。。我在标题中发送API密钥,它现在正在工作。。我不确定这是否是正确的方式,虽然。。。
String link = "https://www.googleapis.com/books/v1/volumes?q="+params;
InputStream is = null;
try
{
int timeoutConnection = 10000;
URL url = new URL(link);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setConnectTimeout(timeoutConnection);
con.setReadTimeout(timeoutConnection);
con.setRequestProperty("key", "API_KEY");
if(con.getResponseCode() != HttpURLConnection.HTTP_OK){
publishProgress("Error conneting.");
}
is=con.getInputStream();
}
我在我的开发分支apk上做了什么: > 添加了清单权限 添加了帐单代码来使用我的sku进行购买 我可能漏掉了什么?提前感谢!
我在两个不同的API项目上断断续续地收到以下错误。API项目已正常运行近一年,没有变化。当错误开始发生时,它会以持续几分钟的突发方式发生,然后再次开始正常运行。错误事件每小时发生几次,我们在12小时前的昨晚早些时候注意到错误发生。感谢任何帮助。 接口范围:www.googleapis.com/auth/userinfo.profile www.googleapis.com/auth/userinf
问题内容: 我正在使用一个Android应用程序来录制视频,并允许用户使用YouTube数据API v3将其直接上传到YouTube。 我已经在Google的API控制台中设置了我的应用。在服务下,我启用了YouTube数据API v3。在API访问下,我有一个“已安装应用程序的客户端ID”部分(包括一个客户端ID和客户端密钥)和一个“简单API访问”部分->“ Android应用程序的密钥(带有
我正在尝试使用谷歌API的v3从客户的公共日历中获取事件列表。我在API Explorer中输入了日历ID,得到了一个肯定的结果: 为了创建 API 密钥,我在 Google 开发者控制台中创建了一个项目,并创建了一个公共 API 访问密钥 (API 我看到的所有回复都表明,您需要确保Google Calendar API已打开,而且它确实已打开(默认情况下也是打开的)。我在这里错过了什么?
但是我在构建APK时也遇到了同样的错误。官方文件似乎有误。如何在VS代码上创建apk?
我正在尝试为基于spring的tomcat应用程序配置logback访问。在我的pom中添加了以下行。xml文件: 我还在pom文件的tomcat插件配置中添加了这个。 我已将资源文件放在以下位置:src/主/资源/日志回溯.xml src/主/资源/日志回溯访问.xml 但是,虽然日志.xml工作,但tomcat无法获取日志回溯访问.xml文件。如何使用我的tomcat6插件附加访问xml文件?