当前位置: 首页 > 知识库问答 >
问题:

未配置Google日历API v3访问

祁修诚
2023-03-14

我正在尝试使用谷歌API的v3从客户的公共日历中获取事件列表。我在API Explorer中输入了日历ID,得到了一个肯定的结果:

https://www.googleapis.com/calendar/v3/calendars/rpsj44u6koirtq5hehkt21qs6k%40group.calendar.google.com/events?key={YOUR_API_KEY}`

=> [List of events here, as expected]

为了创建 API 密钥,我在 Google 开发者控制台中创建了一个项目,并创建了一个公共 API 访问密钥 (API

{
 "error": {
  "errors": [
   {
    "domain": "usageLimits",
    "reason": "accessNotConfigured",
    "message": "Access Not Configured. The API is not enabled for your project, or there is a per-IP or per-Referer restriction configured on your API key and the request does not match these restrictions. Please use the Google Developers Console to update your configuration.",
    "extendedHelp": "https://console.developers.google.com"
   }
  ],
  "code": 403,
  "message": "Access Not Configured. The API is not enabled for your project, or there is a per-IP or per-Referer restriction configured on your API key and the request does not match these restrictions. Please use the Google Developers Console to update your configuration."
 }
}

我看到的所有回复都表明,您需要确保Google Calendar API已打开,而且它确实已打开(默认情况下也是打开的)。我在这里错过了什么?

共有3个答案

司空兴为
2023-03-14

我遇到了同样的问题,我的问题是因为我的项目和Google API中有不同的名称

在这里,Google APIs的名称是“应用示例”

为了解决这个问题,我也把项目的名字改成了“应用程序示例”

        public MakeRequestTask(GoogleAccountCredential credential) {
            HttpTransport transport = AndroidHttp.newCompatibleTransport();
            JsonFactory jsonFactory = JacksonFactory.getDefaultInstance();
            mService = new com.google.api.services.calendar.Calendar.Builder(
                    transport, jsonFactory, credential)
                    .setApplicationName("App Example")
                    .build();
        }
杨波娃
2023-03-14

您不需要OAuth 2.0来访问公共日历

我遇到了与第一次描述的sea_monster相同的问题,尽管我插入了一个公共API访问密钥,并检查了API是否打开,但我总是得到一个错误消息:

403,AccessNotConfigured,API未启用...

解决方案:

我必须去谷歌开发者控制台,选择我的项目,点击左边的“APIs an Auth”,然后点击“APIs ”,选择日历API。虽然它是打开的,但我不得不停用API,等待消息并再次打开API。现在我的代码可以工作了,我不需要修改它!

鲜于阳
2023-03-14

使用Google的日历API让我沮丧了几个小时,我想从几个来源为其他有困难的人记录一个过于完整的(超出了这个问题的范围)答案。

对于我的公共日历,XML链接是这样的;但数据很混乱,我认为,它代表了API的旧版本。经过一番搜索,我找到了v3 API的正确URL结构:https://www.googleapis.com/calendar/v3/calendars/dl9fj86o2ohe7o823s7jar920s@group.calendar.google.com/events?key={API_key}

但就像这个问题一样,我得到了一个错误。请执行下列操作:

1.创建项目

为此,请转到 Google 开发人员控制台,然后单击“创建项目”。我对此感到困惑,因为我的应用程序完全是前端的,而且我认为我不需要Google开发人员项目。我错了。我需要一个项目来执行后续步骤。

2.为项目创建API密钥

创建项目后,单击项目名称并导航到API

3. 添加推荐人

如果你已经做到了这一点,你应该看到OP正在谈论的错误。您收到此错误的原因是,即使日历是公开的,Google也只允许来自指定域的请求。因此,我可以发布日历的ID,甚至我的API密钥,如果没有我的允许,另一个开发人员将无法以编程方式访问我的日历。

要解决此问题,请单击API下的< code >编辑允许的推荐

4. 从允许的域发出 HTTP 请求

在所有这些配置之后,如果您只是将URL粘贴到浏览器中,您仍然会得到一个错误。这是因为请求必须来自您刚刚允许的域之一。只需从您正在构建的任何应用程序中发出请求。在我的例子中,JavaScript (jQuery)如下所示:

$.ajax({
    type: 'GET',
    url: {MY_URL},
    success: function(data) {
        // Throw a debugger statement in here,
        // and you should be able to inspect your data.
    }
});
 类似资料:
  • 我正在使用谷歌图书API KEY for android通过我的android应用程序加载图书数据。但我收到下面列出的错误。 但是,-如果我从API CONSOLE中删除证书,则查询有效(例如,使所有应用程序都可以接受API KEY)。尽管我输入的{SHA1};{包名称}信息是正确的。-如果我将API KEY用于浏览器,则此工作原理。 因此,据我所知,我不能在httpclient方法中将密钥作为u

  • 我试图使用VBScript和Oauth脱机访问谷歌日历API。我设法获得了一个刷新令牌和一个访问令牌,现在我想进入实际使用API的步骤,使用以下代码: 我得到的回应是: 即使访问令牌是有效的--如果我将sURL更改为https://www.googleapis.com/oauth2/v1/tokeninfo并运行该脚本,我将得到以下响应,显示一个有效的令牌: 如果我粘贴URL https://ww

  • 当我试图将一个活动发布到Google时,我得到一个错误: 我知道以前有人问过这个问题,但我的错误告诉我一个不同的信息。我还在控制台中启用了Google域API。我使用的是Gmail帐户,我还收到以下范围的圈和联系人信息: https://www.googleapis.com/auth/userinfo.email https://www.google.com/m8/feedshttps://www

  • 我正在尝试使用PHP和V3 api为Google日历设置推送通知。 我拥有Auth2.0权限,可以从我的应用程序在谷歌上创建事件。现在我想知道用户何时对google日历进行任何更改(CRUD操作)。 这是我的代码: 这是输出: 到目前为止,我不知道为什么address返回null,也许这就是问题所在。但我不知道如何修复它。 同时阅读以下内容:#26730263和我自己的代码没有太大区别。 我做了g

  • 我正在尝试构建一个web应用程序,它可以访问用户的Google日历API,而不需要用户真正在那里。所以基本上是在后台从我的服务器(PHP脚本)添加或修改Google日历中的事件。 我已经是Google Calendar的oauth2了,我为他们准备了一个刷新令牌,这样他们就不必每次都重新登录了。他们只需登录oauth一次,就很好了。但是我怎样才能使服务器能够在后台进行更改呢?

  • 我有一个Google Apps脚本,可以从我的Google日历中检索事件并处理它们。大约3-4小时前它运行良好,但在某个时候它只是停止工作。 错误发生在第行: 错误显示“脚本没有执行此操作的权限。必需的权限(https://www.googleapis.com/auth/calendar || https://www.googleapis.com/auth/calendar.readonly ||