We are aware of the issue with the badge emails resending to everyone, we apologise for the inconvenience - learn more here.

Forum Discussion

Eridanus's avatar
Eridanus
New member | Level 2
2 months ago

Downloading A file from a shared link using the API

Hello, I've tried downloading an Audio File from a share link using the suggested method on dropbox-sdk-js but I keep getting an error:

 

 

Error downloading file: DropboxResponseError: Response failed with a 401 code

 

 

Here's my code:

 

 

import { Dropbox } from "dropbox"; 


// Inside the component:



      // Download function
  const downloadTrack = () => {
  const ACCESS_TOKEN = process.env.ACCESS_TOKEN
   
  const SHARED_LINK =
      "https://www.dropbox.com/scl/fi/2jqckdrbnq60hr8mq3std/Natamani-Kutembea-Nawe-Teacher-John-CW.mp3?rlkey=1eepmp9jz6wc155inir5hfhl2&st=3c8eq4ed&dl=0";

    
   const dbx = new Dropbox({ accessToken: ACCESS_TOKEN });

    dbx
      .sharingGetSharedLinkFile({ url: SHARED_LINK })
      .then(function (response) {
        const blob = response.result.fileBlob; 
        const downloadUrl = URL.createObjectURL(blob); 

        const downloadButton = document.createElement("a");
        downloadButton.setAttribute("href", downloadUrl);
        downloadButton.setAttribute("download", response.result.name); 
        downloadButton.setAttribute("class", "button");
        downloadButton.innerText = "Download: " + response.result.name;

        document.getElementById("results").appendChild(downloadButton);
      })
      .catch(function (error) {
        console.error("Error downloading file:", error);
      });

    return false;
  };

 

 

  • Greg-DB's avatar
    Greg-DB
    Icon for Dropbox Staff rankDropbox Staff

    Check the response body for a more specific error message. With the JavaScript SDK, you should be able to by checking the nested `error.error` object.

     

    An error response with a 401 status code like this should indicate an issue with the authorization though; for instance, the access token used may be invalid or expired. Make sure you're using a valid access token.