Я пытаюсь запустить тест на Google Cloud Vision API
, чтобы увидеть, как он работает на стороне клиента Shape Detection API
.
Я надеюсь получить POST
JSON с изображением в кодировке base64 и вернуть текст изображения и штрих-коды.
Я создал проект GCP
и ключ API в соответствии с руководством по адресу (https://cloud.google.com/vision/docs/before-you-begin), но при попытке сделать запрос я получаю ошибку 401.
error: {code: 401,…}
code: 401
message: "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project."
status: "UNAUTHENTICATED"
Запрос написан на Polymer 2.x следующим образом:
<iron-ajax id = "googleApi"
body = "[[request]]"
content-type = "application/json"
handle-as = "json"
headers$='{"Authorization": "Bearer [[GOOGLE_API_KEY]]"}'
last-response = "{{response}}"
loading = "{{loading}}"
method = "post"
url = "https://vision.googleapis.com/v1/images:annotate">
</iron-ajax>
...
GOOGLE_API_KEY: {
type: String,
value: 'AIza0101010110100101101010'
}
...
getRequest(image) {
let encoded = image.toString('base64');
this.request = {
"requests": [{
"image": {
"content": encoded
},
"features": [{
"type": "LABEL_DETECTION",
"maxResults": 1
}]
}]
};
let request = this.$.googleApi.generateRequest();
request.completes.then(req => {
console.info('submission complete');
console.info(this.response);
})
.catch(error => {
console.info(error);
})
}
Как устранить эту ошибку аутентификации?
Это проблема администратора аккаунта? Неправильно отформатированный код?
Заголовок авторизации не нужен, поэтому запрос должен быть в виде:
<iron-ajax id = "googleApi"
body = "[[request]]"
content-type = "application/json"
handle-as = "json"
last-response = "{{response}}"
loading = "{{loading}}"
method = "post"
url = "https://vision.googleapis.com/v1/images:annotate?key=[[GOOGLE_API_KEY]]">
</iron-ajax>