WORKBOX 개요
    • PDF

    WORKBOX 개요

    • PDF

    Article Summary

    개요

    WORKBOX의 조직/구성원/직급/직책/기본정보 등을 설정할 수 있는 API를 제공합니다.
    HTTP 방식의 POST/PUT/DELETE 메서드 호출을 통해서 이루어집니다.

    공통 설정

    WORKBOX URL

    POST/PUT/DELETE
    https://workbox.apigw.ntruss.com/workbox/workbox/openapi/v1
    

    요청 헤더

    헤더명설명
    x-ncp-apigw-timestamp1970년 1월 1일 00:00:00 협정 세계시(UTC)부터의 경과 시간을 밀리초(Millisecond)로 나타내며
    API Gateway 서버와 시간 차가 5분 이상 나는 경우 유효하지 않은 요청으로 간주

    x-ncp-apigw-timestamp:{Timestamp}
    x-ncp-apigw-api-keyAPIGW에서 발급받은 키 값
    x-ncp-apigw-api-key:{API Gateway API Key}
    x-ncp-iam-access-key네이버 클라우드 플랫폼 포털에서 발급받은 Access Key ID 값
    x-ncp-iam-access-key:{Account Access Key}
    x-ncp-apigw-signature-v1Access Key ID 값과 Secret Key로 암호화한 서명
    x-ncp-apigw-signature-v1:{API Gateway Signature}
    Content-TypeRequest body content type을 application/json으로 지정
    Content-Type: application/json

    인증 헤더

    WORKBOX API는 네이버 클라우드 플랫폼 API Gateway를 통하여 제공되며, API Gateway에 등록된 API를 사용하기 위해서는 3가지 인증키(Access Key ID, Secret Key, API Key)를 발급받아야 합니다

    자세한 내용은 NAVER Cloud Platform API를 참고 부탁드립니다

    • 인증키 생성
      • 네이버 클라우드 플랫폼 포털의 마이페이지 > 계정관리 > 인증키 관리 메뉴에서 신규 API 인증키 생성을 클릭하여 Access Key ID, Secret Key를 생성합니다
      • 만약 Access Key ID, Secret Key가 있다면 해당 키를 사용합니다.

    요청 예시

    curl -i -X GET \
       -H "x-ncp-apigw-timestamp:1505290625682" \
       -H "x-ncp-apigw-api-key:cstWXuw4wqp1EfuqDwZeMz5fh0epaTykRRRuy5Ra" \
       -H "x-ncp-iam-access-key:D78BB444D6D3C84CA38A" \
       -H "x-ncp-apigw-signature-v1:WTPItrmMIfLUk/UyUIyoQbA/z5hq9o3G8eQMolUzTEo=" \
     'https://workplageg.apigw.ntruss.com//calendar/v1/holiday?year=2018&locale=ko_KR&companyId=e721e2da-29ee-4782-9672-3d2b150ac1a6'
    
    • Signature 생성(개행 문자는 \n을 사용)

      • 요청에 맞게 StringToSign을 생성하고 SecretKey로 HmacSHA256 알고리즘으로 암호화한 후 Base64로 인코딩합니다
      • 이 값을 x-ncp-apigw-signature-v1로 사용합니다.
    • 샘플 코드

    public String makeSignature() {
        String space = " ";  // 공백
        String newLine = "\n";  // 줄바꿈
        String method = "GET";  // HTTP 메서드
        String url = "/calendar/v1/holiday?year=2018&locale=ko_KR&companyId=e721e2da-29ee-4782-9672-3d2b150ac1a6";  // 도메인을 제외한 "/" 아래 전체 url (쿼리스트링 포함)
        String timestamp = "{timestamp}";  // 현재 타임스탬프 (epoch, millisecond)
        String apiKey = "{apiKey}";  // api key (from api gateway)
        String accessKey = "{accessKey}";  // access key id (from portal or Sub Account)
        String secretKey = "{secretKey}";  // secret key (from portal or Sub Account)
    
        String message = new StringBuilder()
            .append(method)
            .append(space)
            .append(url)
            .append(newLine)
            .append(timestamp)
            .append(newLine)
            .append(apiKey)
            .append(newLine)
            .append(accessKey)
            .toString();
    
        SecretKeySpec signingKey = new SecretKeySpec(secretKey.getBytes("UTF-8"), "HmacSHA256");
        Mac mac = Mac.getInstance("HmacSHA256");
        mac.init(signingKey);
    
        byte[] rawHmac = mac.doFinal(message.getBytes("UTF-8"));
        String encodeBase64String = Base64.encodeBase64String(rawHmac);
    
      return encodeBase64String;
    
    }
    

    공통 오류

    HTTP 상태 코드로 리턴되고, Body 정보로 전달한다.

    파라미터설명
    resultCode오류 코드
    resultMessage오류 상세 설명
    오류 코드설명
    E900Path 파라미터 오류
    E901WORKBOX > Developers API 설정 On/Off
    E902Body 파라미터 오류
    E903기본 설정 정보를 NO로 설정
    E904externalKey 유효성 오류
    E1001서버 내부 오류
    E1003사진 파일 업로드 실패
    {
        "resultCode": "E901",
        "resultMessage": "Please check if API is used in the developer console."
    }
    
    HTTP 상태 코드응답 메시지설명
    200OK일반적인 요청 성공
    201Created리소스 생성 성공에 대한 응답 코드
    400Bad Request일반적인 요청 실패에 사용(대체로 서버가 이해할 수 없는 형식의 요청이 왔을 때 응답하기 위해 사용)
    500Internal Server Error- 일반적인 서버 오류에 대한 응답 코드
    4XX대의 오류 코드가 클라이언트 측 오류를 나타내기 위해 사용된다면,
    5XX대의 오류 코드는 서버 측 오류를 나타내기 위해 사용됨

    이 문서가 도움이 되었습니까?

    What's Next
    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.