29

我正在用 api 搜索 google plus

这是我的网址: https ://www.googleapis.com/plus/v1/activities?query=internet%20marketing&access_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

这是回应:

{
   "error": {
     "errors": [
      {
         "domain": "global",
         "reason": "insufficientPermissions",
         "message": "Insufficient Permission"
      }
     ],
   "code": 403,
   "message": "Insufficient Permission"
   }
}

这是我的 API 控制台屏幕http://i.stack.imgur.com/jO27J.png

谁能告诉我需要在 api 控制台中为我的应用程序设置什么权限。?

4

3 回答 3

67

这是您的访问令牌的问题,而不是您的项目配置的问题。

如果您在检索访问令牌时没有请求所需的范围,则会返回权限不足错误。猜测一下,由于您使用的是 Google+ API 和 YouTube API,您可能只请求了 YouTube 范围,而不是两者,即:

检查您是否同时要求:

https://www.googleapis.com/auth/youtube
https://www.googleapis.com/auth/plus.login

而不仅仅是第一个。

您可以通过将您的 access_token 传递给此端点来检查您请求的范围:

https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=ACCESS_TOKEN

我无法检查您示例中的令牌,因为它已过期(访问令牌在一小时后过期)。此外,请不要公开发布访问令牌,因为它们允许其他人访问您的数据 - 它们应该保密并小心处理。

顺便说一句,https://www.googleapis.com/plus/v1/activities? query=QUERY是未经身份验证的调用,因此您可以传递项目的 API 密钥而不是访问令牌。如果您使用https://www.googleapis.com/plus/v1/activities?query=QUERY&key=API-KEY拨打电话,那么您根本不需要请求范围或获取访问令牌。

如果您还没有看到它,您可以在 OAuth 2.0 Playground 上尝试您想要进行的 API 调用:

https://developers.google.com/oauthplayground/

这是一个很好的地方,可以查看哪些有效,哪些无效。

于 2013-06-07T09:22:10.243 回答
1

根据@Lee 的回答,现在 Google V3 OAuth AccessToken 验证端点是:

https://www.googleapis.com/oauth2/v3/tokeninfo?access_token=<access_token>

您可以参考下面的谷歌文档:(在OAUTH 2.0 ENDPOINTS标签中)

https://developers.google.com/identity/protocols/OAuth2UserAgent#validate-access-token

于 2017-05-26T02:17:07.590 回答
0

JavaScript

var OAUTH2_SCOPES = [
  'https://www.googleapis.com/auth/youtube',
  https://www.googleapis.com/auth/plus.login
];

要从 YouTube API 检索评论,请将https://www.googleapis.com/auth/plus.login添加到 OAUTH2_SCOPES 数组中

于 2017-07-11T10:15:13.263 回答