드라이브 API 개요

    LINE WORKS 드라이브 API(이하 '드라이브 API')는 LINE WORKS 드라이브에 파일을 업로드, 다운로드하고 파일 목록, 그룹 폴더 정보 등을 조회하는 기능을 API로 제공한다.

    사용 준비

    드라이브 API는 'API ID'를 이용해 고객사별 별도 URL을 제공한다. 드라이브 API를 사용하려면 'API ID'를 발급받아, 각 API URL을 해당 문자열로 치환한다. 단, 파일 업로드 및 다운로드는 API ID 없이 호출한다.

    API ID 발급

    API ID는 드라이브 API의 URL에 사용된다. API ID 발급은 API 공통가이드를 참고한다.

    OAuth 2.0 인증

    OAuth 2.0 인증을 하려면 인증 토큰과 컨슈머키가 필요하다. 컨슈머키와 서버토큰 발급은 API 공통가이드를 참고한다.

    사용 방법

    다음과 같이 API 요청 헤더에 전달받은 인증 토큰과 컨슈머키를 추가한다. 인증 토큰은 'Authorization' 항목에 'Bearer' 타입으로 추가하고, 컨슈머키는 'consumerKey' 항목에 추가한다.

    requestHeader.set("Authorization", "Bearer AAAA8…");
    requestHeader.set("consumerKey", "AbCdEfGhIjKlMn");
    

    Sample Code for Java

    String url = "https://apis.worksmobile.com/r/{API ID}/drive/rl/{resourceLocation}/v2/files/{resourceKey}";
    Map<String, String> urlVariables = new HashMap<>();
    urlVariables.put("API ID", "kr1xxxxx");
    urlVariables.put("resourceLocation", "24101");
    urlVariables.put("resourceKey", "jfjefo098f21xaff");
    
    RestTemplate restTemplate = new RestTemplate();
    HttpHeaders requestHeader = new HttpHeaders();
    requestHeader.setContentType(MediaType.APPLICATION_JSON);
    requestHeader.set("Authorization", "Bearer AAAA8…");
    requestHeader.set("consumerKey", "AbCdEfGhIjKlMn");
    
    HttpEntity<P> requestEntity = new HttpEntity<P>(params, requestHeader);
    ResponseEntity<T> responseBody = restTemplate.exchange(url, httpMethod, requestEntity, typeReference, urlVariables);
    

    API 공통 정보

    드라이브 API는 크게 파일 업로드 및 다운로드 API와 기타 API로 나뉘며, 각각 호출하는 서버 도메인이 다르다. 서버 정보는 각 API 상세 내역을 참조한다.

    resourceLocation

    API의 공통 필수 path parameter인 resourceLocation은 조회하고자 하는 리소스의 resourceLocation값을 이용한다.

    단, 내 폴더, 파일의 resourceLocation을 조회하려면 사용자의 ROOT 폴더(ROOT 폴더의 resourceKey는 root이다)의 파일 속성 조회 API를 호출해서 응답값을 이용한다.

    이때, 내 ROOT 폴더 속성 조회는 rl/{resourceLocation}을 생략하고 호출해서 조회한다.

    GET https://apis.worksmobile.com/r/{API ID}/drive/v2/files/root
    

    Response 공통

    파일 업로드 및 다운로드를 제외한 모든 API 요청은 API Gateway를 거쳐 드라이브 API 서버로 들어오며, OAuth 인증 오류가 발생하면 API Gateway에서 오류 코드를 반환한다.

    {
        "message":"Authentication header not exists",
        "domain":"common",
        "code":"UNAUTHORIZED"
    }
    

    드라이브 API 서버는 API Gateway를 통과한 API 요청을 처리한 후 응답을 JSON 형태로 반환한다.

    {
      "resourceSize" : 106937574,
      "resourceKey" : "MTQ1MDMwMDJ8MTYwOTAwMTg1Njh8RHww",
      "resourceLocation" : null,
      "resourceType" : "folder",
      "resourcePath" : "/123123123123/",
      "fileType" : "folder",
      "folderType" : "my",
      "createDate" : 1430188697000,
      "updateDate" : 1581385436000,
      "accessDate" : 1430188697000,
      "updateUser" : "14503002",
      "hasExif" : false,
      "hasThumbnail" : false,
      "uploaded" : true,
      "locked" : false,
      "virus" : "none",
      "memberShare" : null,
      "linkShare" : null,
      "group" : null,
      "protected" : false
    }
    

    드라이브 API 서버에서 발생한 오류는 오류 코드 항목을 참고한다.