google plus api:“insufficientPermissions”错误

时间:2013-06-07 07:05:15

标签: google-api google-plus

我正在使用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 CONSOLE屏幕http://i.stack.imgur.com/jO27J.png

任何人都可以告诉我需要在api控制台中为我的应用设置哪些权限。 ?

3 个答案:

答案 0 :(得分: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/

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

答案 1 :(得分:1)

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

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

您可以参考以下Google文档:(在OAUTH 2.0 ENDPOINTS标签中)

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

答案 2 :(得分:1)

的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数组中