Sto tentando di offrire un periodo di prova gratuito per la mia estensione di Chrome e ho seguito il Chrome documentation su come questo può essere realizzato."OAuth2 non concesso o revocato" durante il tentativo di valutare la prova gratuita nell'estensione di Chrome
Quando i miei carichi di estensione, però, lo script di fondo sta registrando il seguente errore alla console:
incontrollato runtime.lastError durante l'esecuzione identity.getAuthToken: OAuth2 non concesso o revocato.
La console punta alla chiamata a chrome.identity.getAuthToken
come colpevole. Ecco il codice relativo nel mio script di fondo:
var CWS_LICENSE_API_URL = 'https://www.googleapis.com/chromewebstore/v1.1/userlicenses/';
chrome.identity.getAuthToken({
'interactive': false
}, function(token) {
console.log('token', token);
var req = new XMLHttpRequest();
req.open('GET', CWS_LICENSE_API_URL + chrome.runtime.id);
req.setRequestHeader('Authorization', 'Bearer ' + token);
req.onreadystatechange = function() {
if (req.readyState == 4) {
var license = JSON.parse(req.responseText);
console.log('license', license);
}
};
req.send();
});
mio manifesto è impostato in questo modo (alcuni pezzi omesse per brevità):
"manifest_version": 2,
"key": "kkkkkkkkkkkkkkk",
"background": {
"scripts": [
"background.js"
]
},
"permissions": [
"storage",
"identity",
"https://www.googleapis.com/"
],
"oauth2": {
"client_id": "cccccccccc.apps.googleusercontent.com",
"scopes": [
"https://www.googleapis.com/auth/chromewebstore.readonly"
]
}
Ecco quello che ho provato o confermati:
- L'ID client corrisponde al valore nella console di sviluppatore di Google che è stato generato utilizzando l'ID della mia estensione.
- L'API di Chrome Web Store è abilitata nella console degli sviluppatori di Google (è l'unica API abilitata).
- La chiave nel manifest corrisponde al valore generato dopo aver inserito l'estensione nel negozio web.
- Chiamando
getAuthToken
con la modalità interattiva abilitata risulta lo stesso errore. - Ho paragonato il mio codice a this example e nulla mi salta come sostanzialmente diverso (anche se un paio di occhi in più per confermare non farebbe male).
Nel caso in cui è importante, sto usando Chrome 42.0.2311.135 (64-bit) su Mac OS X.
Tutte le idee su ciò che sta causando l'errore e che cosa ho bisogno di cambiare per renderlo andare via così posso cercare il token auth e la licenza?
Sto facendo esattamente quello che stai facendo e mi stavo chiedendo, cosa dovrei inserire come URL del referrer nella console di Google Apis.La chiave Api per il web store Chrome Api – Kerndog73
@ Kerndog73 - Non ricordo di dover inserire un referrer nella console delle API di Google. Ho attivato l'API di Chrome Web Store e ho creato un ID cliente. L'URL per tale ID cliente corrisponde a 'client_id' nel mio file' manifest.json'. Potresti voler fare una nuova domanda su SO e fornire maggiori dettagli e uno screenshot. Collegati qui e io controllerò. –
Nah non me ne preoccuperò. È facoltativo ma altamente raccomandato. Questo è ancora abbastanza facoltativo per me. – Kerndog73