지식은 제로지만 드롭박스 API를 사용하고 싶어요

Dropbox와 데이터를 교환하고 싶어요!


지식은 전혀 없지만 드롭박스에서 데이터를 얻으려고 합니다.파일을 올리고 싶습니다.
아마도 나만 이런 일을 고려할 것이다.
아마 자바스크립트를 보통 배우면 공식 사이트보면 이해할 수 있을 거예요.그래서(?)"Dropbox API"로 검색하면 정보도 별로 없어요(말하자면 필요없을 수도 있어요).
자신이 쓴 노트로서 오류가 발생하지 않고 복사할 수 있는 코드를 먼저 남긴다.

차리다


드롭박스를 연결하기 위한 준비로'드롭박스 애플리케이션'을 만들 필요가 있다.

1. 드롭박스로 앱 만들기


초기 설정을 위해 공식 사이트에서 응용 프로그램 만들기를 클릭합니다.

  • Choose an API: 개인이 사용하려면 왼쪽을 선택하는 것이 좋습니다.
  • Choose the type of access youneed: 만들 응용 프로그램이 "App folder(폴더만 지정)"인지 "Full Dropbox(카트리지 내 모두)"인지 선택합니다.지정된 폴더만 선택하십시오.
  • Name your app: 응용 프로그램을 만드는 이름입니다.2. 지정한 폴더만 대상으로 할 때 Dropbox의 '적용' 폴더에 여기에 설정된 이름의 폴더를 만들고 이 폴더에서 조작할 수 있습니다.이 응용 프로그램 이름은 반드시 전 세계 모든 사용자 간에 고유해야 한다.(이번 어플리케이션 이름은 "Sample App")
  • "Create app"를 클릭합니다.
  • ※ 앱이 만들어졌을 경우 오른쪽 위에 있는'앱콘스토어'를 클릭하면 앱 일람표로 이동할 수 있습니다.

    2. 액세스 토큰 만들기


    'Generate'단추(주황색으로 둘러싸인 곳)를 누르면 Dropbox에 접근하는 접근 영패가 만들어집니다.사전에 수첩에 복사해라.(이 문자열이 외부로 유출되면 다른 사람도 접근할 수 있음을 주의하십시오.)

    3. JavaScript 라이브러리 "axios"의 읽기


    위와 같이 Dropbox 측면의 설정은 다음과 같은 JavaScript의 HTML 측면을 읽는 설정입니다.
    이 페이지에 기재된 코드는 JavaScript 라이브러리의 "axios"를 사용하기 때문에 프로그램 라이브러리를 읽어야 합니다.<head>~</head>에 다음과 같이 기재되어 있다.
    Index.html
      <head>
        <meta charset="utf-8">
        <title>INDEX</title>
        <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
      </head>
    

    JavaScript를 사용하여 Dropbox와 데이터 송수신


    프로그램 설정이 끝나면 준비가 끝납니다.
    여러 가지 조작이 가능한 경우에만 최소한이지만 이후 참조Dropbox API Explorer해 필요한 부분을 변경하면 그에 맞게 사용할 수 있다.또한 모든 코드는 다음을 기준으로 합니다.
  • 상기 접속 영패: 준비 2에서 만든 자신의 접속 영패를 대체한다.
  • Dropbox 내의 파일 경로 지정: "/"부터 시작해야 합니다.미리 준비 1에서'Full Dropbox'를 선택했을 때 Dropbox 폴더,'App folder'를 선택했을 때 생성된 애플리케이션 이름의 폴더가 경로의 시작점이다.이번에'App folder'를 선택해'Samp App'이라는 폴더를 만들었기 때문에'/01 TEST.tex'라고 쓰면'Dropbox/Apple App/01 TEST.txt'를 뜻한다.
  • Dropbox에서 데이터 다운로드


    DropboxDownload.js
    function DropboxDownload() {
      axios({
        method: 'post',
        url: 'https://content.dropboxapi.com/2/files/download',
        headers: {
          'Authorization': 'Bearer メモしたアクセストークン',
          'Content-Type': 'application/octet-stream',
          'Dropbox-API-Arg': JSON.stringify({
            "path":"ダウンロードするファイル名"})
        }
      })
      .then(response => {
        //接続に成功した場合の処理
      })
      .catch(error => {
        //接続に失敗した場合の処理
      })
      .then(() => {
        // 成功or失敗にかかわらず最後に実行するコード
      })
    };
    

    Dropbox에 텍스트 업로드


    DropboxTextUpload.js
    function DropboxTextUpload() {
      axios({
        method: 'post',
        url: 'https://content.dropboxapi.com/2/files/upload',
        data: 'このテキストがアップロードされます',  //アップロードするテキスト
        headers: {
          'Authorization': 'Bearer メモしたアクセストークン',
          'Content-Type': 'application/octet-stream',
          'Dropbox-API-Arg': JSON.stringify({
            "path": "/Upload.txt", //アップロード時のファイルパス
            "mode": "overwrite"}) //モード(下記参照)
        }
      })
      .then(response => {
        //接続に成功した場合の処理
      })
      .catch(error => {
        //接続に失敗した場合の処理
      })
      .then(() => {
        // 成功or失敗にかかわらず最後に実行するコード
      })
    };
    
  • 업로드 모드
  • add: 새 파일을 저장합니다.같은 이름의 파일이 이미 존재하면 덮어쓰지 않습니다.autoename 매개 변수를 진짜로 설정하면 Upload(1).txt처럼 자동으로 이름 저장이 변경됩니다.
  • overwrite: 지정한 경로가 이미 존재하면 보내는 내용으로 덮어씁니다.
  • Dropbox에 파일 업로드


    DropboxFileUpload.js
    
    
  • 업로드 모드
  • add:
  • overwrite: 지정한 경로가 존재할 때 보내는 내용으로 덮어씁니다.
  • update:
  • Dropbox에서 폴더 만들기


    DropboxMakeNewFolder.js
    function DropboxMakeNewFolder() {
      axios({
        method: 'post',
        url: 'https://api.dropboxapi.com/2/files/create_folder_v2',
        data: JSON.stringify({
          "path": "作成するフォルダのパス",
          "autorename": false}), //autorenameについて:下記参照
        headers: {
          'Authorization': 'Bearer メモしたアクセストークン',
          'Content-Type': 'application/json'
        }
      })
      .then(response => {
        //接続に成功した場合の処理
      })
      .catch(error => {
        //接続に失敗した場合の処理
      })
      .then(() => {
        // 成功or失敗にかかわらず最後に実行するコード
      })
    };
    
  • autorename
  • 진: 같은 이름의 폴더가 있으면'~(1)'등의 이름으로 폴더를 만듭니다.
  • 가짜: 같은 이름의 폴더가 이미 있으면 새 폴더를 만들지 않습니다.
  • 기본값은 가짜
  • 좋은 웹페이지 즐겨찾기