[에러해결] watson Assistant API 요청시 apikey header로 날리기
$ curl -X POST -u "apikey:apikey" --header "Content-Type:application/json" --data "{\"input\": {\"text\": \"Hello\"}}" "https://gateway.watsonplatform.net/assistant/api/v1/workspaces/{workspace_id}/message?version=2019-02-28"
$ -u "apikey:{apikey}
를 header로 날리기 위해 base64 encoding 이 필요했다.
해결 방안
$ echo "$(echo -n 'apikey: 넣고자 하는 API_KEY | base64)"
를 날리면
다음과 같이 변화가 된다.
YXBpa2V5OkNXTWMtOHF5NFI1QV9SV----------------------------------------------
*보안을 위해 점선 처리.
입력 예 :
$ curl -X POST --header "Authorization:Basic <apikey:변화한 인증키 >" --header "Content-Type:application/json" --data "{\"input\": {\"text\": \"안녕하세요\"}}" "https://gateway-tok.watsonplatform.net/assistant/api/v1/workspaces/워크스페이스 키/message?version=2019-02-28"
즉
$ curl -X POST --header "Authorization:Basic YXBpa2V5OkNXTWMtOHF5NFI1QV9SV----------------------------------------------i" --header "Content-Type:application/json" --data "{\"input\": {\"text\": \"안녕하세요\"}}" "https://gateway-tok.watsonplatform.net/assistant/api/v1/workspaces/워크스페이스 키/message?version=2019-02-28"
를 전송하면
header를 통해서 API 인증을 성공할 수 있다