chrome.identity.getAuthToken无法在Chrome扩展程序中获取令牌

时间:2014-02-14 12:04:02

标签: javascript jquery google-chrome-extension identity

我在Chrome扩展程序中使用以下代码:

 chrome.identity.getAuthToken({'interactive': true}, function(token)
    {
       DoMagicStuff();
    });

这在家里运行正常,我的扩展名直接添加为源文件夹,但不能在另一台机器(但是同一个用户)上使用打包的CRX-File。我收到“未定义”作为代币。

crx中的manifest.json根据需要包含一个Key。这是它的相关部分:

{    
    "permissions": [
        "http://ajax.googleapis.com/",
        "storage",
        "identity"
    ],

    "key": "xxxxxxxx",
"oauth2": {
   "client_id": "xxxxx.apps.googleusercontent.com",
    "scopes": [
      "https://www.googleapis.com/auth/plus.login",      
      "https://www.googleapis.com/auth/plus.me"
    ]
  }

尝试收集令牌时,在控制台上看不到错误

根本没有要求授权的Popup。没有安装Popup-blocker

更新: 看起来应用程序ID与api-dashboard(和商店)的应用程序ID不同。 (我现在已经安装了两次扩展。一个(旧版本)具有来自商店的正确ID和一个来自CRX) 我可以修改crx的值吗?

1 个答案:

答案 0 :(得分:4)

我也在研究这个问题(在chromebook上运行dev版本),这就是我理解并为我工作的......

使用Pack extension(chrome:// extensions)创建CRX时,它会使用您的清单中的客户端ID(来自Dev Console OAuth),并且依赖于该位置CRX来源。

要在另一台计算机上手动安装CRX:

  • 确保CRX安装在目标计算机上的相同位置(目录)或
  • 使用Dev Console创建新的OAuth客户端ID(输入目标计算机上chrome:// extensions中显示的应用ID),使用新的OAuth客户端ID更新manifest.json,使用{{1}重新创建CRX },并尝试在目标计算机上使用新的CRX。