Eric.Yoo Posted May 27 공유하기 Posted May 27 https://clovastudio.ncloud.com/tuning/api에서 주는 python 예제를 받아 수행하면 잘 됩니다. 그러나 https://api.ncloud-docs.com/docs/clovastudio-gettasks는 예제가 없습니다. 그래서 이 예제를 고쳐서 수행 했습니다. # -*- coding: utf-8 -*- import uuid import base64 import hashlib import time import hmac import requests class ListTaskExecutor: def __init__(self, host, uri, method, iam_access_key, secret_key): self._host = host self._uri = uri self._method = method self._api_gw_time = str(int(time.time() * 1000)) self._iam_access_key = iam_access_key self._secret_key = secret_key self._request_id = str(uuid.uuid4()) def _make_signature(self): secret_key = bytes(self._secret_key, 'UTF-8') message = self._method + " " + self._uri + "\n" + self._api_gw_time + "\n" + self._iam_access_key message = bytes(message, 'UTF-8') signing_key = base64.b64encode(hmac.new(secret_key, message, digestmod=hashlib.sha256).digest()) return signing_key def _send_request(self, size_cnt=20, page_no=0): headers = { 'Content-Type': 'application/json; charset=utf-8', 'X-NCP-APIGW-TIMESTAMP': self._api_gw_time, 'X-NCP-IAM-ACCESS-KEY': self._iam_access_key, 'X-NCP-APIGW-SIGNATURE-V2': self._make_signature(), 'X-NCP-CLOVASTUDIO-REQUEST-ID': self._request_id } result = requests.get(self._host + self._uri + f"?page={page_no}&size={size_cnt}", headers=headers).json() return result def execute(self, size_cnt, page_no): res = self._send_request(size_cnt, page_no) if 'status' in res and res['status']['code'] == '20000': return res['result'] else: return res if __name__ == '__main__': completion_executor = ListTaskExecutor( host='https://clovastudio.apigw.ntruss.com', uri='/tuning/v2/tasks', method="GET", iam_access_key='....', secret_key='....', ) response_text = completion_executor.execute(size_cnt=20, page_no=0) print(response_text) 이렇게 수행하면 인증오류가 납니다. {'error': {'errorCode': '200', 'message': 'Authentication Failed', 'details': 'Invalid authentication information.'}} 무었이 문제인지 확인 가능할 가요 ? 링크 복사 다른 사이트에 공유하기 More sharing options...
Eric.Yoo Posted May 27 Author 공유하기 Posted May 27 https://api.ncloud-docs.com/docs/clovastudio-posttask 와 https://api.ncloud-docs.com/docs/clovastudio-gettask 는 예제를 주어서 그대로 하면 잘 되고, https://api.ncloud-docs.com/docs/clovastudio-deletetask 와 https://api.ncloud-docs.com/docs/clovastudio-gettasks 는 예제를 않주니 같은 방식의로 만들어 수행하면, Authentication Failed 오류가 납니다. 이것도 되는 예제를 주면 고맙겠습니다. 링크 복사 다른 사이트에 공유하기 More sharing options...
CLOVA Studio 운영자 Posted May 29 공유하기 Posted May 29 안녕하세요, @Eric.Yoo님, signature의 매개변수(page=&size=) 정의가 잘못되어 오류가 발생한 것으로 보입니다. 아래와 같이 수정 후 요청 부탁드립니다. def _make_signature(self, page_no, size_cnt): 감사합니다. 링크 복사 다른 사이트에 공유하기 More sharing options...
Recommended Posts
게시글 및 댓글을 작성하려면 로그인 해주세요.
로그인