Google Books API 403 访问未配置

2024-01-04

我正在尝试联系 Google Books API 并执行书名搜索,这仅需要公共 API 密钥,不需要 OAUTH2。我得到的只是以下错误:

{
    "error": {
        "errors": [
        {
            "domain": "usageLimits",
            "reason": "accessNotConfigured",
            "message": "Access Not Configured"
        }
        ],
        "code": 403,
        "message": "Access Not Configured"
    }
}

在谷歌搜索了几个小时后,似乎许多其他人也有同样的问题,但使用的是其他谷歌 API。到目前为止我所做的:

  1. 在我的开发者控制台中注册了一个项目
  2. 启用图书 API
  3. 签署我的申请以获取 SHA1 证书编号
  4. 选择在我的开发者控制台中获取 Android 的公共 API 密钥
  5. 将以下字符串粘贴到公共 API 密钥表单中,以获取密钥:“SHA1 number;com.package”,不带引号
  6. 将生成的密钥复制粘贴到我的代码中。

代码如下:

private void callGoogleBooks(){
    String key = MY_KEY;
    String query = "https://www.googleapis.com/books/v1/volumes?q=flowers+inauthor:keyes&key=" + key;
    Log.d("google books", callApi(query));
}

public String callApi(String query){
    HttpClient httpClient = new DefaultHttpClient();
    HttpGet getRequest = new HttpGet(query);
    HttpResponse httpResponse = null;

    try{
        httpResponse = httpClient.execute(getRequest);
    } catch(UnsupportedEncodingException e){
        Log.d("ERROR", e.getMessage());
    } catch(ClientProtocolException e){
        Log.d("ERROR", e.getMessage());
    } catch (IOException e){
        Log.d("ERROR", e.getMessage());
    }

    if(httpResponse != null){
        try{
            HttpEntity httpEntity = httpResponse.getEntity();
            InputStream is = httpEntity.getContent();
            BufferedReader br = new BufferedReader(
                    new InputStreamReader(is, "utf-8"), 8);
            StringBuilder sb = new StringBuilder();
            String line = null;
            while((line = br.readLine()) != null){
                sb.append(line + "\n");
            }
            is.close();
            String responseString = sb.toString();
            return responseString;
        } catch (Exception e){
            Log.d("ERROR", e.getMessage());
        }
    }
    return null;
}
  • 有没有明显的错误?我需要以不同的方式格式化或打包我的请求吗?
  • 我需要在清单文件中添加任何内容吗?
  • 在生成公共 API 密钥时指定包时,我是否需要指定与我的应用程序结构中相同的包名称?我在某处读到它必须是唯一的,但是将其更改为不太可能重复的内容会导致相同的错误。

该错误显然与“usageLimits”有关,但我的测试项目中每天允许的 1000 次调用还不到 1%。

我也尝试过实施Google 图书 Java 示例 https://code.google.com/p/google-api-java-client/source/browse/books-cmdline-sample/src/main/java/com/google/api/services/samples/books/cmdline/BooksSample.java?repo=samples不使用上面的代码,得到相同的错误消息。我还尝试过禁用并重新启用 Books 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();
}

从这个线程:适用于 Android 的 Google Books API - 访问未配置 https://stackoverflow.com/questions/20825036/google-books-api-for-android-access-not-configured

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Google Books API 403 访问未配置 的相关文章

随机推荐

  • 是否有满足 C99 标准的 static_assert 替代品?

    我一直在尝试实现类似的方法static assert这是在 C 11 标准中定义的 主要问题是C 编译器如何编写传递给的文本消息static assert as a const char 我可以让编译器写一条消息 比如A is not PO
  • 如何使用 @Template() 引用多个树枝

    我计划更新在 Symfony 3 0 上运行的应用程序 我曾经使用 Template 但是更新时 我必须在 中指定twig文件的根目录 但是 您需要更改 format 中index csv twig 和index html twig 的读取
  • 如何在react-native中为webView请求设置自定义标头

    我希望能够在 ruby on Rails 服务器端检测到 http 请求来自我的应用程序中的 webView 组件 该应用程序正在使用react native 特别是 我想区分来自应用程序的请求和来自在 ios 设备上运行的移动 safar
  • 请求变量如何由encodeURIComponent 使用 ISO-8859-1 字符集而不是 utf-8 进行编码?

    我在使用 ISO 8859 1 字符集的网站上工作 请求应该由encodeURIComponent 部分编码 但该函数使用utf 8编码 请求变量如何由encodeURIComponent使用ISO 8859 1字符集而不是utf 8进行编
  • 比较日期以检查旧文件

    我想检查文件是否早于一定时间 例如 2 天 我设法以这种方式获取文件创建时间 gt gt gt import os path time gt gt gt fileCreation os path getctime filePath gt g
  • Spring Cloud AWS - 无效标头发布 SNS 通知

    我正在尝试使用org springframework cloud aws messaging core NotificationMessagingTemplate 来自 Spring Cloud AWS 将通知发布到 SNS 主题 每次发布
  • 易失性数组的替代方案

    从其他问题中 我了解到易失性数组的元素不是易失性的 只有引用本身是不稳定的 volatile int data Thread A data 4 457 Thread B System out println data 4 在这里 线程 B
  • Python 2.7:如何在 Windows 上将新行的分隔符限制为 '\n'?

    当我在 Windows 上运行的 python 2 7 脚本中写入文本文件时 新行分隔符是 r n 但我希望它是 n 我尝试过使用open http docs python org 2 library io html io open wit
  • iframe 用于嵌入 flash 内容时的 Webkit 字体渲染

    请参见http jsfiddle net CVwXV 2 http jsfiddle net CVwXV 2 如果您使用的是 Mac 当您在 Mac 上的 Chrome 或 Safari webkit 上查看此内容时 文本会跳至更浅的阴影
  • 根据outlook邮件更新excel表[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我的目标是每当我收到特定主题的邮件时
  • 如何使用另一个 python 脚本文件中的参数执行 python 脚本文件

    我的问题是我想使用另一个 python 文件中的参数执行一个 python 文件以获取返回的值 不知道我有没有解释清楚 example 从外壳我执行这个 getCameras py path to the scene 这会返回给我一个相机列
  • Celery 不注册任务

    你好 我刚刚开始将 Celery 与 Django 一起使用 我有一项需要定期执行的任务 在管理界面中 我可以在名为 任务 已注册 的下拉列表中看到我的任务 但是当 Celery Beat 尝试执行它时 会抛出 NotRegistered
  • 用 C# 编写“原始”HTTP 客户端

    我正在尝试用 C 编写一个 原始 HTTP 客户端 你可能会问为什么 我的目标是在 J2ME 中实现 HTTP 客户端 只能执行 GET 和有限的 POST 但首先我需要更好地理解 HTTP 协议 因此进行 C 尝试 我的第一次尝试失败了
  • 选择数据库后进行身份验证

    我的 MongoDB 服务器中有 3 个数据库 我正在使用 pymongo 用 Python3 编写一些脚本 我想使用最新的版本和做法 一旦我打开客户端并选择数据库 pymongo MongoClient mydatabase authen
  • 具有标题和项模板列的 Windows 8 XAML ListView 应具有相同的动态宽度

    我正在使用带有 Itemtemplate 和 Headertemplate 的 Listview 两个模板都包含 6 列 如果我为模板设置固定的列宽 一切都可以 如图一所示 但我想将项目的宽度设置为 自动 但后来我得到图 2 这要怎么处理呢
  • 创建组件实例并传递给另一个组件渲染为 [object HTMLelement]

    从我的组件 例如 Component 中 我尝试实例化一个 Angular 组件 例如 CustomComponent 设置一些属性 然后将其发送到表格 例如 CustomTable 进行渲染 但我不断收到 object HTMLEleme
  • Minio:使用 docker-compose 添加公共存储桶

    下面是我的 docker compose 中的一个服务 minio image minio minio edge environment MINIO ACCESS KEY minio123 MINIO SECRET KEY minio123
  • SQLite 中的“如果、那么、否则”

    在不使用自定义函数的情况下 SQLite 是否可以执行以下操作 我有两个表 它们通过通用 ID 号链接 在第二个表中 有两个变量 我想要做的是能够返回一个结果列表 其中包括 行 id 如果这两个变量的所有实例 可能有两个以上 均为 NULL
  • 如何中止 Python 脚本的执行? [复制]

    这个问题在这里已经有答案了 我有一个简单的 Python 脚本 如果满足条件 我想停止执行该脚本 例如 done True if done quit stop exit else do other stuff 本质上 我正在寻找与函数体中的
  • Google Books API 403 访问未配置

    我正在尝试联系 Google Books API 并执行书名搜索 这仅需要公共 API 密钥 不需要 OAUTH2 我得到的只是以下错误 error errors domain usageLimits reason accessNotCon