Подтвердить что ты не робот

Chrome.identity Аутентификация пользователя в расширении Chrome

Я пытаюсь написать расширение chrome, которое требует аутентификации пользователя.
Учебник Google предполагает, что мне нужно сначала загрузить в интернет-магазин, чтобы получить ключ:

  • Войдите в консоль Google API, используя ту же учетную запись Google, загрузите приложение в Интернет-магазин Chrome.

Я загрузил нерабочую версию, чтобы просто получить ключ, но он висит там в ожидании более недели. Как я могу получить этот ключ или каким-то образом вдохновить Google одобрить это приложение, которое мне не нужно в интернет-магазине? Я делаю все это неправильно?

4b9b3361

Ответ 1

Вам не нужно загружать расширение в Интернет-магазин Chrome, чтобы использовать chrome.identity API. Достаточно иметь действительный идентификатор расширения. Самый простой способ начать - скопировать 32-символьный идентификатор расширения из chrome://extensions/ в раздел учетных данных проекта в консоли API см. Снимок экрана ниже.
Хотя, если вы когда-либо захотите опубликовать расширение или использовать его в другом профиле или компьютере, вам лучше выбрать идентификатор расширения, которым вы управляете. Это можно сделать, установив в файле манифеста ключ "key". См. Получение идентификатора расширения Chrome для разработки для получения подробного ответа на создание этих ключей.

Например, попробуйте выполнить следующее расширение, используя только что сгенерированный ключ. Он напечатает вашу информацию о пользователе в диалоговом окне.

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

Ответ 2

Немного поздно, но вот источник моей ранней путаницы

Это немного противоречиво, но сразу же после начала расширения/приложения chrome вам нужно "публиковать" в интернет-магазине, чтобы получить согласованный ключ и идентификатор. Если вы используете редактор Chrome Dev, нажмите в верхнем левом меню гамбургера и нажмите "Опубликовать в Интернет-магазине Chrome".

Как только он закончится, вы можете нажать "Открыть панель разработчика" и сохранить приложение в виде черновика. Затем вы увидите полный список опубликованных приложений и нажмите "Дополнительная информация" рядом с вашим приложением и скопируйте ключ между -----BEGIN PUBLIC KEY----- и -----END PUBLIC KEY-----. Вставьте это в свой манифест как "key", и вы можете перейти в автономный режим.