Как правильно аутентифицировать Google Vision API с помощью Polymer - PullRequest
0 голосов
/ 20 марта 2019

Я пытаюсь запустить тест на Google Cloud Vision API, чтобы увидеть, как он работает на стороне клиента Shape Detection API.

Я надеюсь POST JSON с изображением, закодированным в base64, и вернуть текст изображения и штрих-коды.

Я создал GCP проект и ключ API в соответствии с руководством (https://cloud.google.com/vision/docs/before-you-begin),, но получаю ошибку 401 при попытке сделать запросы.

ошибка: {код: 401,…}
код: 401
сообщение: «Запрос содержит недопустимые учетные данные для аутентификации. Ожидаемый токен доступа OAuth 2, файл cookie для входа в систему или другие действительные учетные данные для аутентификации. См. https://developers.google.com/identity/sign-in/web/devconsole-project."
статус: "НЕАУТЕНТИФИЦИРОВАН"

Запрос написан в 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.log('submission complete');
    console.log(this.response);
  })
  .catch(error => {
    console.log(error);
  })
}

Как мне устранить эту ошибку аутентификации?

Это проблема администратора аккаунта? Неправильно отформатированный код?

1 Ответ

0 голосов
/ 20 марта 2019

Заголовок авторизации не нужен, поэтому запрос должен иметь вид:

<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>
...