google plus api:"insufficientPermissions"错误

but*_*nti 29 google-api google-plus

我正在用api搜索google plus

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

这是回复:

{
   "error": {
     "errors": [
      {
         "domain": "global",
         "reason": "insufficientPermissions",
         "message": "Insufficient Permission"
      }
     ],
   "code": 403,
   "message": "Insufficient Permission"
   }
}
Run Code Online (Sandbox Code Playgroud)

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

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

Lee*_*Lee 68

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

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

检查您是否要求:

https://www.googleapis.com/auth/youtube
https://www.googleapis.com/auth/plus.login
Run Code Online (Sandbox Code Playgroud)

而不只是第一个.

您可以通过将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/

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