Google chrome extension chrome.identity.getAuthToken不工作

Google chrome extension chrome.identity.getAuthToken不工作,google-chrome-extension,google-oauth,google-chrome-app,Google Chrome Extension,Google Oauth,Google Chrome App,我正在使用ChromeIdentityAPI,在我的Chrome扩展上为用户提供谷歌认证 我遵循了谷歌的官方教程: 我向manifest.json和客户端ID和范围添加了权限 为了触发身份验证,我在我的Background.js中添加了这段代码 chrome.identity.getAuthToken 问题是当我执行扩展时,我被重定向到此登录页面 chrome://chrome-signin/?source=5 但是在成功的身份验证之后,我被重定向到另一个登录页面 有什么问题 Manifes

我正在使用ChromeIdentityAPI,在我的Chrome扩展上为用户提供谷歌认证

我遵循了谷歌的官方教程:

  • 我向manifest.json客户端ID范围添加了权限
  • 为了触发身份验证,我在我的Background.js中添加了这段代码
chrome.identity.getAuthToken

问题是当我执行扩展时,我被重定向到此登录页面

chrome://chrome-signin/?source=5

但是在成功的身份验证之后,我被重定向到另一个登录页面

有什么问题

Manifest.json

{
  "name": "My Extension",
  "short_name": "Ex App",
  "version": "0.1",
  "description": "description",
  "manifest_version": 2,
  "icons": { "128": "ICONE.png", "48": "ICONE1.png" },
  "permissions": ["contextMenus", "identity", "cookies", "http://*/*",   "https://*/*", "<all_urls>", "unlimitedStorage"],
  "browser_action": {
    "default_title": "Title",
    "default_icon": "imgIcone.png"
  },
  "oauth2": {
        "client_id": "xxxxxxx",
        "scopes": [
            "https://www.googleapis.com/auth/userinfo.email"
    ]   
},   

  "background": {
    "scripts": ["background.js"]
  },

    "content_scripts"   : [
{
  "matches": ["*://*.google.com/*"],
  "js": ["gadget/js/jquery.js","gadget/js/contactcard.js"],
  "css": ["gadget/css/contactcard.css"],
  "all_frames": true
  }],  

  "content_security_policy": "script-src 'self' 'unsafe-eval' https://apis.google.com/; object-src 'self'",
  "web_accessible_resources": ["img.png","gadget/css/contactcard.css","gadget/img/extension/crec.png"]
}

问题解决了

我的
浏览器扩展的应用程序ID
谷歌控制台开发者中的应用程序ID不匹配
为了避免这种情况,请先上传你的扩展名,然后从Chrome复制ID,并在Google控制台开发者中设置它!
每次在Google Chrome中更改它时,都必须在Google控制台中更新它


公认的答案不正确。您可以将其上载到webstore,发布,然后从webstore安装。安装后,在mac上查找已安装的扩展应用程序目录(
~/Library/Application\Support/Google/Chrome/Default/Extensions/
),并将
键从已安装的
manifest.json
复制到源代码
manifest.json
。将
字段添加到您的
manifest.json
后,您的应用程序id在本地开发期间不会更改


来源:

对于其他用户,他们可能会遇到chrome.identify.getauthtoken未启动的问题,或者您登录后什么也没发生

检查您的舱单并将其减少到最低限度。例如 “oauth2”:{“client.id”:“alongstring”,“scopes”:[“bla”,“openid”,“bla”]}。由于数组中有openid,回调根本没有启动,没有警报,什么也没有


在oauth2的我的作用域中使用openid以某种方式阻止了回调被触发。

如果
chrome.identity.getAuthToken
中的回调根本没有为您触发,请确保您在manifest.json中使用的是“browser\u action”,而不是“page\u action”。

无需更改问题标题的可能重复;每个人都可以看到答案,并且您可以将答案标记为已接受(尽管在您这样做之前可能会有一个时间延迟),进一步表明它不需要回答。@Xan谢谢您提供的信息!我面临着同样的问题,但我的应用程序id与我在chrome控制台中的id相同。我有这个问题,它正在折磨我:这不会使任何接受的答案无效。是的,你可以阻止它改变(你描述了其中的一种方法),但是答案不包含任何错误的陈述。好的,接受的答案不是理想的解决方案。只需将你的应用程序添加到webstore并发布即可。你可以私下发布它,这样它只对你可用,或者选择电子邮件地址下载它。我同意@web student ksu!既然我们谈论的是abt开发,假设我想集成一个google+登录,那么我需要在开发环境中检查它,并将其上传到webstore。我需要一把钥匙来证明身份。Xan接受的答案毫无意义。
chrome.identity.getAuthToken({ 'interactive': true }, function(token) {
        // Use the token.
        console.log(token); 
            });