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

Vin*_*ent 27 google-chrome oauth google-chrome-extension

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

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

我上传了一个无法运行的版本来获取密钥,但现在它已悬挂超过一周了.我怎么能得到那把钥匙或以某种方式激励谷歌批准我不想在网上商店买这个应用程序?我做错了吗?

Rob*_*b W 41

您无需将扩展程序上传到Chrome网上应用店即可使用该chrome.identityAPI.只要有一个有效的扩展ID就足够了.上手最简单的方法是将32个字符的扩展ID从复制chrome://extensions/到你的项目的凭证部分在API控制台 下方见截图.
虽然您希望发布扩展程序或在其他配置文件或计算机中使用它,但您最好选择您控制的扩展程序ID.这可以通过"key"在清单文件中设置密钥来完成.有关生成这些密钥的详细解答,请参阅获取Chrome扩展ID以进行开发.

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

的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"]   
    }   
}
Run Code Online (Sandbox Code Playgroud)

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();
});
Run Code Online (Sandbox Code Playgroud)

  • @sdespolit 请参阅屏幕截图。将您的分机 ID 放在“/detail/”后面(标记为 6 的字段)。 (3认同)

Vin*_*ent 11

有点晚了,但这是我早先混淆的根源

这有点违反直觉,但在开始镀铬扩展/应用后,您必须在网上商店"发布"以获得一致的密钥和ID.如果您使用的是Chrome开发者编辑器,请点击左上角的汉堡包菜单,然后点击"发布到Chrome网上应用店".

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

  • 我相信你必须“上传”你的扩展而不是“发布”。只有在您愿意向公众发布时才“发布”您的扩展。对于仪表板上的 chrome 扩展,有一个“更多信息”链接。单击它将显示扩展的“id”和公钥。 (2认同)