Невозможно создать общую ссылку с помощью Dropbox SDK
У меня проблема с регистрацией
sharingCreateSharedLinkWithSettings
ответ метода. Я пробовал использовать короткоживущие и долгоживущие токены и получаю коды ошибок 409/400/401. Я также не слишком уверен, каким должен быть путь. Если папка приложения называется
tron
и у меня есть файл с именем в этой папке, если строка пути должна быть
/tron/cabin.mp3
,
cabin.mp3
или
/cabin.mp3
. Я также не уверен, что у меня просто проблема с аутентификацией, хотя я передаю accessToken.
У меня нет проблем с отображением имен файлов с
filesListFolder
метод, поэтому не уверен, что мне не хватает.
import './App.css';
import { Dropbox } from 'dropbox';
var dbx = new Dropbox({ accessToken: ACCESSTOKEN });
dbx.filesListFolder({path: ''})
.then(function(response) {
console.log(response);
displayFiles(response.result.entries);
})
.catch(function(error) {
console.log(error);
});
dbx.sharingCreateSharedLinkWithSettings({path:'/tron/cabin.mp3'})
.then(function(response){
console.log('share:' + response)
displaySharedLinks(response);
})
.catch(function(error){
console.log(error);
})
function displayFiles(files) {
var filesList = document.getElementById('files');
var li;
for (var i = 0; i < files.length; i++) {
li = document.createElement('li');
li.appendChild(document.createTextNode(files[i].name));
filesList.appendChild(li);
}
}
function App() {
return (
<div className="App">
<header className="App-header">
<div id="files"></div>
</header>
</div>
);
}
export default App;
1 ответ
Коды состояния, такие как коды 400, 401 и 409, которые вы получаете, просто указывают тип ошибки ответа. Вы можете получить более конкретную информацию об ошибке из вложенного объекта ошибки API следующим образом:
.catch(function(error){
console.log(error.error);
})
Например, с ошибкой 409 вы можете получить ошибку API, например
path/not_found
, что указывает на то, что на этом пути в подключенной учетной записи нет ничего.
Что касается пути, который вы должны использовать, это зависит от состояния учетной записи и типа доступа к вашему приложению. В общем, вы можете использовать
path_lower
возвращенный для элемента другими вызовами, например из
filesListFolder
/
filesListFolderContinue
или
filesGetMetadata
.
Обратите внимание, что приложения, использующие тип «папка приложения», располагаются в специальной папке приложения, созданной для приложения. Вызовы API для приложений, использующих этот тип, автоматически выполняются относительно самой папки приложения, поэтому вам не следует также указывать путь к самой папке приложения при выполнении вызовов API для такого типа приложения, например, для вывода списка содержимого папки. .
Это означает, что если вы хотите получить доступ к папке «tron» внутри папки приложения приложения, вместо «/ Apps / AppName / tron» вы просто позвоните с помощью «/ tron». Аналогичным образом, чтобы получить доступ к файлу в «/Apps/AppName/tron/cabin.mp3», вы должны просто указать «/tron/cabin.mp3». Или, если вы имели в виду, что «/ tron» - это путь к специальной папке приложения, а файл находится непосредственно внутри нее, вы должны указать просто «/cabin.mp3».
Приложения с типом «полный Dropbox» могут получить доступ ко всему в учетной записи, поэтому должны указывать полный путь.
Дополнительную информацию можно найти в Руководстве по доступу к файлам.