我在 Chrome 扩展程序中使用以下代码:
chrome.identity.getAuthToken({'interactive': true}, function(token)
{
DoMagicStuff();
});
这在家里工作正常,我的扩展直接添加为源文件夹,但不适用于另一台计算机(但同一用户)上的打包 CRX 文件。我收到“未定义”作为 token 。
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"
]
}
尝试收集 token 时,控制台上看不到错误
根本没有出现请求授权的弹出窗口。未安装弹出窗口拦截器
更新: 看起来应用程序 ID 与 api-dashboard(和商店)中的应用程序 ID 不同。 (我现在已经安装了两次扩展。一个(旧版本)具有来自商店的正确 ID,另一个来自 CRX) 我可以修改 crx 的值吗?
最佳答案
我也在研究这个问题(在 chromebook 上运行开发版本),这是我所理解和为我工作的......
当使用 Pack 扩展
(chrome://extensions) 创建 CRX 时,它会使用 list 中的客户端 ID(来自 Dev Console OAuth),并且存在位置依赖性CRX 来源。
要在另一台计算机上手动安装 CRX,可以执行以下任一操作:
- 确保 CRX 安装到目标计算机上的同一位置(目录),或者
- 使用开发控制台创建新的 OAuth 客户端 ID(输入目标计算机上 chrome://extensions 中显示的应用程序 ID),使用新的 OAuth 客户端 ID 更新 manifest.json,使用
Pack 重新创建 CRX扩展
,并尝试在目标计算机上使用新的 CRX。
关于javascript - chrome.identity.getAuthToken 无法在 Chrome 扩展中获取 Token,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21778926/