<!doctype html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Dropbox API</title>
<style>
body { max-width: 620px; margin: 40px auto; font: 16px Arial; padding: 0 16px; }
input, button { box-sizing: border-box; padding: 10px; margin: 5px 0; }
input { width: 100%; }
button { cursor: pointer; }
#result { white-space: pre-line; }
</style>
</head>
<body>
<h1>Dropbox API</h1>
<input id="token" placeholder="Access token Dropbox">
<button onclick="showFiles()">Получить список файлов</button>
<br>
<input id="fileName" value="new-file.txt" placeholder="Имя файла">
<input id="text" value="Файл создан через Dropbox API" placeholder="Текст файла">
<button onclick="createFile()">Создать файл</button>
<p id="result"></p>
<script src="https://unpkg.com/dropbox/dist/Dropbox-sdk.min.js"></script>
<script>
const result = document.querySelector('#result')
const token = document.querySelector('#token')
const fileName = document.querySelector('#fileName')
const text = document.querySelector('#text')
const client = () => new Dropbox.Dropbox({ accessToken: token.value })
const showError = error => result.textContent = JSON.stringify(error.error || error.message)
async function showFiles() {
try {
const data = await client().filesListFolder({ path: '' })
result.textContent = data.result.entries.map(file => file.name).join('\n') || 'Файлов нет'
} catch (error) { showError(error) }
}
async function createFile() {
try {
const data = await client().filesUpload({ path: '/' + fileName.value, contents: text.value, autorename: true })
result.textContent = 'Создан файл: ' + data.result.name
} catch (error) { showError(error) }
}
</script>
</body>
</html>