Próbuję zaoferować bezpłatny okres próbny dla mojego rozszerzenia do Chrome i śledzę Chrome documentation, w jaki sposób można to osiągnąć."OAuth2 nie przyznano lub odwołano" podczas próby oceny bezpłatnej wersji próbnej w rozszerzeniu do Chrome
Kiedy moi mnóstwo rozszerzeń, choć skrypt tło loguje się następujący błąd w konsoli:
Nieograniczony runtime.lastError podczas biegu identity.getAuthToken: OAuth2 nie przyznano lub odwołane.
Konsola wskazuje na wywołanie chrome.identity.getAuthToken
jako winowajcę. Oto odpowiedni kod w moim skrypcie tle:
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();
});
Mój manifest jest ustawiony jak tak (niektóre kawałki pominięty dla zwięzłość):
"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"
]
}
oto co próbowałem lub potwierdzone:
- Identyfikator klienta jest zgodny z wartością w konsoli programisty Google, która została wygenerowana przy użyciu identyfikatora mojego rozszerzenia.
- Interfejs API Chrome Web Store jest włączony w konsoli programisty Google (jest to jedyny dostępny interfejs API).
- Klucz w manifeście jest zgodny z wartością wygenerowaną po umieszczeniu rozszerzenia w sklepie internetowym.
- Wywołanie
getAuthToken
z włączonym trybem interaktywnym powoduje ten sam błąd. - Porównałem mój kod do this example i nic nie wyskoczyło na mnie, ponieważ jest zasadniczo inny (chociaż dodatkowa para oczu do potwierdzenia nie zaszkodzi).
W przypadku, jest to ważne, używam Chrome 42.0.2311.135 (64-bit) w systemie Mac OS X.
Wszelkie pomysły na temat tego, co jest przyczyną błędu i co trzeba zmienić, aby go odejść, abym mógł wyszukać token i licencję?
Robię dokładnie to, co robisz i zastanawiałem się, co powinienem umieścić jako adres strony odsyłającej w konsoli Google Apis.Klucz Api dla sklepu internetowego Chrome Api – Kerndog73
@ Kerndog73 - Nie pamiętam konieczności wpisywania strony odsyłającej w konsoli Google API. Włączyłem interfejs API Chrome Web Store i utworzyłem identyfikator klienta. Adres URL tego identyfikatora klienta odpowiada "identyfikator_klienta" w moim pliku 'manifest.json'. Możesz zadać nowe pytanie na SO i podać więcej szczegółów i zrzut ekranu. Link do tego tutaj, a ja to sprawdzę. –
Nie, nie będę się tym martwić. Jest opcjonalny, ale bardzo polecany. To dla mnie wciąż opcjonalne. – Kerndog73