google-chrome - Chrome 扩展中的 chrome.identity 用户身份验证

标签 google-chrome google-chrome-extension oauth

我正在尝试编写一个需要用户身份验证的 chrome 扩展。
Google's tutorial建议我需要先上传到网上商店才能获得 key :

  1. Login to the Google APIs Console using the same Google account used to upload your app to the Chrome Web Store.


我上传了一个无法运行的版本来获取 key ,但它已经卡在那里等待一个多星期了。我怎样才能获得那个 key 或以某种方式激励 Google 批准这个我不想在网上应用店中出现的应用程序?我做这一切都错了吗?

最佳答案

您无需将扩展程序上传到 Chrome 网上应用店即可使用 chrome.identity API。有一个有效的扩展 ID 就足够了。最简单的入门方法是从 chrome://extensions/ 复制 32 个字符的扩展 ID。到 API console 的项目凭据部分见下面的截图。
尽管如果您想发布扩展程序或在不同的配置文件或计算机中使用它,那么您最好选择一个您控制的扩展程序 ID。这可以通过设置 "key" 来完成。在 list 文件中键入。见 Obtaining Chrome Extension ID for development有关生成这些 key 的详细答案。

例如,使用我刚刚生成的 key 尝试以下扩展。它将在对话框中打印您的用户信息。

list .json

{
    "key": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0W0/YVPvLrj2cWBOXfPBBYwPp56R+OJb9QLudyMpigF+V4DFV0NEUnbo9iA6m+7cVPiD6YbhbIaiAoHSdtqEKwaYvrEJRGuGsLjDq+RMwG2x+FcGIsO4ny0BuZaZ/Q2+DaL33NBUl2h9dIi1xa0Suq6qpoJ4yykTu9y7Q6rB9ulJze6DiZL7LWU5NzHCEWt21zAhpLZOqvYY8wzY69pMf+P0+uOLuy87x84rvCRNegbSmEYLC5f4y6ikjVnFUxJBxMlpMg3bByxbrLVBFPuHj4khkr6adUXgks2vBBHFcrRh5EYXopI+PLwUJPfFtzyN8+L7swen9kcK8gXMwX28KwIDAQAB",
    "name": "Identity test",
    "version": "1",
    "manifest_version": 2,
    "background": {
        "scripts": ["background.js"]
    },  
    "permissions": [
        "identity"
    ],  
    "oauth2": {
        "client_id": "1014705257182-52dddl9dbiec2ln22stokphlaq0v7gor.apps.googleusercontent.com",
        "scopes": ["profile"]   
    }   
}

背景.js

chrome.identity.getAuthToken({
    interactive: true
}, function(token) {
    if (chrome.runtime.lastError) {
        alert(chrome.runtime.lastError.message);
        return;
    }
    var x = new XMLHttpRequest();
    x.open('GET', 'https://www.googleapis.com/oauth2/v2/userinfo?alt=json&access_token=' + token);
    x.onload = function() {
        alert(x.response);
    };
    x.send();
});

关于google-chrome - Chrome 扩展中的 chrome.identity 用户身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25044936/

相关文章:

c# - 如何使用带有 OAuth v2 UserCredentials 的 Google Contact API v3 创建 ContactsService

visual-studio-2008 - () => 构造

php - Yahoo 是否支持 oauth 的状态参数?

javascript - 图像在 Google Chrome 中扭曲,但在 Firefox 中不扭曲。我应该如何处理这个问题?

javascript - Web Worker 在 webkit 中的行为与 Firefox 不同

python - 如何从Python的网络浏览器捕获HTTP错误

javascript - Chrome 扩展中的 API 调用需要按两次按钮

html - 调整窗口大小后,右侧 float 元素显示在 Chrome 中变得困惑?

c# - 将 C# 正则表达式转换为 javascript

google-chrome-extension - list 中的 Chrome 扩展本地化不起作用