Я пытаюсь написать расширение для Chrome, которое берет текст с веб-сайта и запускает его через пользовательскую модель AutoML Natural Language в Google Cloud, а затем отображает данные прогноза на экране.
I 'Я попытался выполнить аутентификацию с использованием OAuth2, что дает мне ошибки «Отказано в доступе», и в документации говорится, что вместо этого необходимо настроить учетную запись службы.Я не понял, как превратить расширение chrome в служебную учетную запись, но я нашел людей, которые предлагали мне настроить отдельный сервер Node.JS и пересылать запросы таким образом.
В manifest.js у меня есть:
"oauth2": {
"client_id": "{account_id}.apps.googleusercontent.com",
"scopes":["https://www.googleapis.com/auth/cloud-platform"]
}
и в background.js у меня есть:
let authToken = '';
chrome.identity.getAuthToken({interactive: true}, function(token) {
authToken = token;
fetch("https://automl.googleapis.com/v1beta1/{name}:predict", {
method: "POST",
body: `{
"payload": {
"textSnippet": {
"content": "TEXT TO PREDICT GOES HERE",
"mime_type": "text/plain"
},
}
}`,
headers: {
Authorization: "Bearer " + authToken,
"Content-Type": "application/json"
}
}).then(response => response.text())
.then(data => console.log(data));
});
Это перевод запроса curl, описанного вдокументация превратилась в запрос на получение.Я получаю
{
"error": {
"code": 403,
"message": "The caller does not have permission",
"status": "PERMISSION_DENIED"
}
}
Насколько я могу судить, учетная запись настроена правильно и получила разрешения на стороне Google Cloud.Кто-нибудь видит, что здесь происходит?