【问题标题】:Google API offline accessGoogle API 离线访问
【发布时间】:2016-08-08 23:32:31
【问题描述】:

我已在 Google 控制台中启用了适当的 API。这不是问题。 我需要编写一个节点 js 应用程序,它可以在用户离线时访问用户的数据。 我已经成功实现了 oauth2 授权,并获得了一个 refresh_token,我后来用它来获得一个新的访问令牌。

现在我已经到了实际访问 API 本身的地步了。 我有这个 URL,当从 shell 使用 curl 调用时,它完美工作:

卷曲https://www.googleapis.com/calendar/v3/calendars/primary/events?access_token=mytoken

它返回一个包含所有事件的 JSON,并且不断工作。不管我叫它多少次。

然而,完全相同的 URL 在粘贴到任何浏览器的地址栏中时都会失败。

以下是 Google 发送的回复:

{
"error": {
  "errors": [
   {
    "domain": "usageLimits",
    "reason": "dailyLimitExceededUnreg",
    "message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup.",
    "extendedHelp": "https://code.google.com/apis/console"
   }
  ],
  "code": 403,
  "message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup."
 }
}

当使用“request”模块从节点js中的服务器端调用时,它也会失败并出现相同的错误:

request('https://www.googleapis.com/calendar/v3/calendars/primary/events?token=mytoken', function(err, httpResponse, body){ /* ..print body or fail.. */ }

我所有与 google-api 相关的搜索都指向(几乎)相同的页面。

有人知道我做错了什么吗?

【问题讨论】:

  • 已超过未经验证使用的每日限制。继续使用需要注册,显然去code.google.com/apis/console 并在那里注册您的应用程序
  • 他们经常抛出“超出使用”错误,而这实际上并不是原因。如果 ^^ 没有任何帮助,请尝试发布数据而不是将其放入查询字符串中。
  • 感谢 cmets,伙计们:这样我就可以仔细检查 - 我去了我的谷歌控制台,确实启用了日历 API。提醒一下:在我的问题中,我写道 API 请求确实确实工作 - 但仅在 curl(获取请求)中。我推断它理论上应该在浏览器和节点中完美运行。

标签: javascript oauth-2.0 google-api google-oauth


【解决方案1】:

使用 Google 提出的替代方法,我在 shell 中的 cURL 和节点中都获得了一致的结果: 我已删除 access_token GET 查询参数 我正在添加以下标题: - "授权:承载 ACCESS_TOKEN_HERE"

有效。 感谢 cmets。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-01
    • 2016-04-29
    • 2021-04-12
    • 2017-09-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多