Google cloud api를 key를 이용해 호출할 시 주의할 점

Myeongwon Choi·2021년 6월 5일
0

Google cloud api를 이용하는 앱을 작성 중 문제가 생겼다. 클라이언트 라이브러리를 이용한 호출이 예상 외로 잘 되지 않아 REST API를 이용하려고 하였으나, 401 Unauthorized를 반환하면서 API가 제대로 작동하지 않았다.

인증 방식

구글 클라우드 API를 호출하는 방법도 여러 가지가 있고, 그리고 여기에 인증을 하는 방법도 여러 가지가 있는데, 어째서인지 이게 혼용이 잘 안 되는 거 같다.

AI vision 문서를 잘 보면
POST https://vision.googleapis.com/v1/images:annotate를 보낼 때, curl을 다음과 같이 작성하라고 한다:

curl -X POST \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
https://vision.googleapis.com/v1/images:annotate

여기서는 POST Header에 access-token을 넣어주는 방식으로 인증하는데, 이건 API키와 다른 값이다. 이걸 혼동하면 안 된다. API 키를 이용하여 인증하려면, POST URL에 파라미터 형식으로 넣어 주어야 한다.

즉, 헤더를 주지 않고 https://vision.googleapis.com/v1/images:annotate?key=<your-key> 따위의 형태로 리퀘스트를 하여야 한다는 뜻이다.

profile
잡식 개발자

0개의 댓글