我以为我已经成功了,但我发现在用interactive:false:调用getAuthToken后出现了这个错误
OAuth2请求失败:服务响应错误:"错误请求">
"糟糕的请求"真的很少告诉我。好吧,我知道我可能需要使用interactive:true(为什么?(,所以当我尝试这样做时,它会弹出我的浏览器,提示我的谷歌登录(我输入了它,这真的很痛苦,因为我们有两步身份验证(,然后。。。没有什么永远不会调用回调。。。
任何有兴趣帮助我的人都可能想看看我的宣言
"key": "MII...QAB",
"oauth2": {
"client_id": "35...-lnf...1pd.apps.googleusercontent.com",
"scopes": [ "identity" ]
},
"permissions":[ "identity", "https://accounts.google.com/*", "https://www.googleapis.com/*", "https://*.amazonaws.com/*", "<all_urls>" ],
你可能还想看看有问题的代码:
chrome.identity.getAuthToken({ 'interactive': true, 'scopes':['identity'] }, function ( token ) {
if ( chrome.runtime.lastError ) {
next(chrome.runtime.lastError);
} else {
next( null, token );
}
});
或者:
chrome.identity.getAuthToken({ 'interactive': false }, function ( token ) {
if ( chrome.runtime.lastError ) {
next(chrome.runtime.lastError);
} else {
next( null, token );
}
});
我很乐意提供任何其他可能有助于确定我哪里出了问题的信息。
Chrome文档中说明了交互对象中布尔值的用途/含义。获取令牌可能需要用户登录Chrome,或批准应用程序请求的范围。如果interactive
标志为true
,则getAuthToken
将根据需要提示用户。当标志为false
或省略时,getAuthToken
将在任何需要提示的时候返回失败。
现在针对您的错误OAuth2 request failed: Service responded with error: 'Bad Request'
在创建OAuth凭据时,请确保在同意屏幕中提供电子邮件地址和产品名称。
有关详细信息,请查看此线程。