我正在创建Chrome扩展程序,我想将其与谷歌电子表格连接以修改和加载工作表。 当我使用chrome.identity API获取身份验证时,我在Chrome中的Google帐户会话总是被淘汰。即使我使用google中的示例代码。
这是我的扩展程序的一些代码(仅粘贴核心代码): 清单:
"permissions": [ "*://*/*",
"storage",
"tabs",
"contextMenus",
"alarms",
"identity"],
"oauth2": {
"client_id": "64262386828-sng3chvgvldosl1586trtngrcp7ocfv5.apps.googleusercontent.com",
"scopes": [
"https://spreadsheets.google.com/feeds",
"https://docs.google.com/feeds",
"https://www.googleapis.com/auth/plus.login"
]
},
"browser_action": {
"default_popup": "popup.html"
}
popup.js:
var ci = chrome.identity;
$(document).ready(function(){ $(“#getAuth”)。click(function(){ getAuth(); });
function getAuth() {
var access_token;
var retry = true;
getToken();
function getToken() {
ci.getAuthToken({ interactive: true }, function(token) {
if (chrome.runtime.lastError) {
console.log(chrome.runtime.lastError);
return;
}
access_token = token;
});
}
}
});
以下是显示此问题的简短视频: http://screencast.com/t/yiKYJUBv 而且,它只能从chrome中解脱出来,我仍然可以访问Gmail或其他东西。
答案 0 :(得分:2)
因为client_id与扩展名id不匹配。 该错误仅发生在手动加载的扩展中(它具有与商店不同的ID)。 解决方案:在开发控制台中创建第二个clientid,指向您的本地扩展。在开发时使用那个。在发布之前将其切换回来(非常重要!)