Eri*_*pie 9 google-chrome google-chrome-extension oauth-2.0
我正在尝试为Chrome扩展程序提供免费试用期,并且一直在关注如何完成此操作的Chrome 文档.
但是,当我的扩展程序加载时,后台脚本会将以下错误记录到控制台:
运行identity.getAuthToken时未经检查的runtime.lastError:未授予或撤消OAuth2.
控制台指向呼叫chrome.identity.getAuthToken作为罪魁祸首.这是我的后台脚本中的相关代码:
var CWS_LICENSE_API_URL = 'https://www.googleapis.com/chromewebstore/v1.1/userlicenses/';
chrome.identity.getAuthToken({
'interactive': false
}, function(token) {
console.log('token', token);
var req = new XMLHttpRequest();
req.open('GET', CWS_LICENSE_API_URL + chrome.runtime.id);
req.setRequestHeader('Authorization', 'Bearer ' + token);
req.onreadystatechange = function() {
if (req.readyState == 4) {
var license = JSON.parse(req.responseText);
console.log('license', license);
}
};
req.send();
});
Run Code Online (Sandbox Code Playgroud)
我的清单是这样设置的(为简洁起见省略了一些部分):
"manifest_version": 2,
"key": "kkkkkkkkkkkkkkk",
"background": {
"scripts": [
"background.js"
]
},
"permissions": [
"storage",
"identity",
"https://www.googleapis.com/"
],
"oauth2": {
"client_id": "cccccccccc.apps.googleusercontent.com",
"scopes": [
"https://www.googleapis.com/auth/chromewebstore.readonly"
]
}
Run Code Online (Sandbox Code Playgroud)
这是我尝试或确认的内容:
getAuthToken启用交互模式调用会导致相同的错误.如果重要,我在Mac OS X上使用Chrome 42.0.2311.135(64位).
有关导致错误的原因以及我需要更改以使其消失的任何想法,以便我可以查找身份验证令牌和许可证?
Eri*_*pie 15
代码方面,唯一需要的改变是启用交互模式:
chrome.identity.getAuthToken({
'interactive': true
}, function(token) {
...
});
Run Code Online (Sandbox Code Playgroud)
还有一些PEBCAK问题正在发生.即:
false,并true和重装扩展不是功能性的足够的测试.getAuthToken缓存的结果.当我撤销身份验证然后刷新甚至删除并重新添加我的扩展时,相同的令牌会继续返回一段时间.启用交互模式重新启动Chrome是我解决此问题的原因.| 归档时间: |
|
| 查看次数: |
2169 次 |
| 最近记录: |