使用chrome.identity api时,我会继续踢出我的谷歌登录信息

时间:2014-04-30 17:40:35

标签: google-chrome google-chrome-extension google-drive-api

我正在创建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或其他东西。

1 个答案:

答案 0 :(得分:2)

因为client_id与扩展名id不匹配。 该错误仅发生在手动加载的扩展中(它具有与商店不同的ID)。 解决方案:在开发控制台中创建第二个clientid,指向您的本地扩展。在开发时使用那个。在发布之前将其切换回来(非常重要!)