Получение идентификатора пользователя Google из приложения Chrome

Я думал, что у меня все в порядке, но я обнаружил, что у меня есть эта ошибка после вызова getAuthToken с интерактивным: false :

Ошибка запроса OAuth2: служба ответила с ошибкой: «Неверный запрос»

«Плохой запрос» действительно мало что мне говорит. Хорошо, я понимаю, что мне, вероятно, нужно будет использовать interative:true (почему?), и поэтому, когда я пытаюсь это сделать, он запускает мой браузер, запрашивает мой логин Google (который я ввожу, и это настоящая боль, потому что у нас есть 2-этапный аутентификация), затем не делает... ничего... обратный вызов никогда не вызывается...

Любой, кто хочет помочь мне, вероятно, захочет увидеть фрагменты из моего manifest.json:

"key": "MII...QAB",
"oauth2": {
    "client_id": "35...-lnf...1pd.apps.googleusercontent.com",
    "scopes": [ "identity" ]
},
"permissions":[ "identity", "https://accounts.google.com/*", "https://www.googleapis.com/*", "https://*.amazonaws.com/*", "<all_urls>" ],

Вы также, вероятно, захотите увидеть рассматриваемый код:

chrome.identity.getAuthToken({ 'interactive': true, 'scopes':['identity'] }, function ( token ) {
    if ( chrome.runtime.lastError ) {
        next(chrome.runtime.lastError);
    } else {
        next( null, token );
    }
});

или, альтернативно:

chrome.identity.getAuthToken({ 'interactive': false }, function ( token ) {
    if ( chrome.runtime.lastError ) {
        next(chrome.runtime.lastError);
    } else {
        next( null, token );
    }
});

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


person Reinsbrain    schedule 08.08.2016    source источник
comment
Он предназначен для использования с браузером, уже вошедшим в сеанс Chrome (тот, который зарегистрирован в chrome://settings), и если вы уже вошли в него, он позволит авторизоваться одним щелчком мыши.   -  person kzahel    schedule 08.08.2016
comment
@kzahel: да, я понимаю эту часть. он предлагает мне войти в систему (хотя я уже вошел в систему) ... затем он ничего не делает, и обратный вызов (с токеном) никогда не вызывается, если я не устанавливаю интерактивный: false ... затем он сообщает мне о неправильном запросе (не достаточно информации для продолжения...)   -  person Reinsbrain    schedule 08.08.2016


Ответы (1)


В документации Chrome указано назначение и значение логического значения в интерактивном объект, получение токена может потребовать от пользователя входа в Chrome или утверждения запрошенных приложений областей. Если флаг interactive равен true, getAuthToken будет запрашивать пользователя по мере необходимости. Когда флаг равен false или опущен, getAuthToken вернет ошибку в любое время, когда потребуется подсказка.

Теперь о вашей ошибке OAuth2 request failed: Service responded with error: 'Bad Request'

Убедитесь, что вы указали адрес электронной почты и название продукта на экране согласия при создании учетных данных OAuth.

Дополнительную информацию можно найти в этой теме. .

person KENdi    schedule 09.08.2016