Я пытаюсь использовать chrome.identity.getAuthToken({ 'interactive': false }, function(token) { в скрипте options_ui, но не могу заставить его работать. Мне нужен oAuthToken для изменения данных в электронной таблице через API.
Я добавил chrome.identity.getAuthToken({ 'interactive': false }, function(token) { при нажатии кнопки сохранения всплывающего окна в options_ui, но всегда получаю сообщение об ошибке:
"Cannot read property getAuthToken of undefined"
.
options.js, который включен в качестве сценария в options.html:
SaveButton.click(function () {
chrome.identity.getAuthToken({
interactive: true
}, function (token) {
console.info(token);
});
options.html входит в состав manifest.json:
"options_ui": {
"page": "options.html",
"open_in_tab": true},
}
Я добавил ключ и идентификатор клиента в свой manifest.json, а также дал разрешения для "identity".
"key": "MYKEY",
"oauth2": {
"client_id": "MyclientID.apps.googleusercontent.com",
"scopes":["https://www.googleapis.com/auth/spreadsheets"]
},
Я обнаружил, что API нельзя использовать в content_script. Но поскольку я использую его в options_ui, я предполагаю, что проблема не в этом. Я уже потратил много времени, пытаясь выяснить причину проблемы, но мне не удалось заставить ее работать. Есть другие идеи? Может я чего-то не увидел?
Я уже просматривал другие темы, такие как это, но не нашел подходящего решения.
Что вы имеете в виду под обменом сообщениями? Что было бы подходящим решением для отправки ввода текста со страницы параметров в электронную таблицу? Какие-либо предложения?
См. Обмен сообщениями с расширением Chrome. Также просмотрите Архитектура расширений Chrome.
Большое спасибо! Это решение моей проблемы.
Рад помочь. Продолжайте кодировать!



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы можете использовать
chrome.identity.getAuthTokenтолько в фоновых и всплывающих скриптах. Используйте обмен сообщениями со страницы параметров.