chrome扩展程序中的chrome.identity用户身份验证

时间:2014-07-30 19:06:13

标签: google-chrome google-chrome-extension oauth

我正在尝试编写需要用户身份验证的Chrome扩展程序 Google's tutorial建议我首先上传到网上商店以获取密钥:

  
      
  1. 使用与之相同的Google帐户登录Google API控制台   将您的应用上传到Chrome网上应用店。
  2.   

我上传了一个无法正常运行的版本来获取密钥,但是现在已暂停了一个多星期。我怎么能得到那把钥匙或以某种方式激励谷歌批准这个我不想在网上商店购买的应用程序?我做错了吗?

2 个答案:

答案 0 :(得分:40)

您无需将扩展程序上传到Chrome网上应用店即可使用chrome.identity API。只要有一个有效的扩展ID就足够了。最简单的入门方法是将chrome://extensions/中的32个字符的扩展程序ID复制到API console 的项目凭据部分,请参阅下面的屏幕截图
虽然您希望发布扩展程序或在其他配置文件或计算机中使用它,但您最好选择您控制的扩展程序ID。这可以通过在清单文件中设置"key"键来完成。有关生成这些密钥的详细解答,请参阅Obtaining Chrome Extension ID for development

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

的manifest.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"]   
    }   
}

background.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();
});

答案 1 :(得分:11)

有点晚了,但这是我之前混淆的原因

这有点违反直觉,但在开始镀铬扩展程序/应用程序后,您必须在网上商店“发布”以获取一致的密钥和ID。如果您使用的是Chrome Dev Editor,请点击左上角的汉堡包菜单,然后点击“发布到Chrome网上应用店”。

完成后,您可以点击“打开开发人员信息中心”并将您的应用保存为草稿。然后,您会看到已发布应用的完整列表,然后点击应用旁边的“更多信息”,并在-----BEGIN PUBLIC KEY----------END PUBLIC KEY-----之间复制密钥。将其作为"key"粘贴到您的清单中,然后您可以继续离线开发。