Chrome扩展程序标识:OAuth2请求失败:服务响应并显示错误:“错误请求”

时间:2018-07-31 17:50:23

标签: google-chrome-extension google-oauth google-sheets-api google-oauth2

我严格按照https://developer.chrome.com/extensions/tut_oauth进行操作,但是我被困在

https://developer.chrome.com/extensions/tut_oauth#identity_permission

执行扩展后,在没有获取令牌的情况下出现错误:

Unchecked runtime.lastError while running identity.getAuthToken: 
OAuth2 request failed: Service responded with error: 'bad request'

请提出此错误的可能原因。

3 个答案:

答案 0 :(得分:6)

tl; dr

如果范围为空,请将范围更新为以下内容,

 "oauth2": {
    "client_id": "yourExtensionOAuthClientIDWillGoHere.apps.googleusercontent.com",
    "scopes":["https://www.googleapis.com/auth/userinfo.email"]
  }

正在关注OAuth2: Authenticate Users with Google上的教程的人

如果您遇到了这个问题,可能是因为它是2020年并且文档没有更新。

本教程要求您

在扩展清单中包括“ oauth2”字段。将生成的OAuth客户端ID放在“ client_id”下。现在,在“作用域”中包含一个空字符串。

{
  "name": "OAuth Tutorial FriendBlock",
  ...
  "oauth2": {
    "client_id": "yourExtensionOAuthClientIDWillGoHere.apps.googleusercontent.com",
    "scopes":[""]
  },
  ...
}

但在调用身份API调用以获取令牌之前永远不会更新它。

使用以下内容更新范围应解决此问题,

"scopes": ["https://www.googleapis.com/auth/userinfo.email"]

答案 1 :(得分:4)

我认为这是因为范围为空。我就像您关注这篇文章,但是发现问题出在范围区域。

答案 2 :(得分:0)

我按建议更改了范围,但问题仍然存在。然后,我不仅尝试重新加载该扩展,还尝试对其进行更新,并且最终成功了(“删除”按钮旁边的错误消失了,我可以进行身份​​验证了。)

老实说,我不确定是执行此操作的是Update还是更改执行此操作的空作用域,但这是2020年7月用户使它起作用的答案。 :)

(PS,如果您没有那么多的Google朋友,或者您的朋友不愿意使用图片,那么下一步您的代码可能会失败,并以data.photos[0].url失败,您只需采取照顾一下)

enter image description here enter image description here