Как использовать Dropbox в приложении Cordova

Чтобы добавить поддержку Dropbox для вашего приложения Cordova, вам необходимо:

  • Зарегистрируйте себя в качестве разработчика Dropbox на официальном сайте.
  • Создайте свое приложение в Dropbox и добавьте необходимую конфигурацию для приложения Cordova (UA перенаправления OAuth2).
  • Получите копию dropbox.js для управления потоком OAuth и легко используйте API с Javascript.
  • Научитесь проверять подлинность вашего пользователя в вашем приложении.
  • Используйте некоторые распространенные методы.

Давайте начнем.

Создание учетной записи разработчика Dropbox

Вам необходимо зарегистрировать свое приложение в Dropbox, иначе вы не сможете получить доступ к любому из их API. Зарегистрируйтесь на Сайт разработчиков Dropbox здесь.

Настройка вашего приложения в Dropbox

После регистрации и подтверждения перейдите на Мои приложения вкладку и нажмите кнопку Создать приложение.

Dropbox создать меню приложения

Следуйте основным шагам создания:

Dropbox создать приложение

Теперь наступает самый важный момент создания приложения — его настройка. Поскольку мы работаем над проектом cordova, мы будем использовать oAuth2, поэтому конфигурация вашего приложения должна выглядеть следующим образом:

Конфигурация Dropbox

Теперь вы получите ключ приложения а также секрет приложения код, который нам понадобится для доступа к API с помощью JavaScript.

Примечание: URI перенаправления OAuth 2 должен иметь следующий URL: https://www.dropbox.com/1/oauth2/redirect_receiver в противном случае вы получите только белый экран позже, когда попытаетесь войти в систему.

Доступ к Dropbox

Теперь, когда наше приложение живо и зарегистрировано, мы сможем выполнять вызовы API. Прежде чем вы сможете совершать какие-либо вызовы API, ваши пользователи должны авторизовать ваше приложение для доступа к своим Dropbox (форма входа в Dropbox). Этот процесс следует протоколу OAuth 2.0, который предусматривает отправку пользователя на веб-страницу www.dropbox.com, а затем его перенаправление обратно в ваше приложение.

Чтобы справиться со всеми этими вещами и не получить головную боль, мы будем использовать неофициальную библиотеку dropbox.js. С помощью этой библиотеки мы сможем просматривать и просматривать содержимое нашего пользователя Dropbox (Чтение, запись, загрузка) через API Dropbox rest.

Поскольку проект написан на Coffescript, вам нужно создать dropbox.js файл, Прочитайте следующее руководство о том, как собрать dropbox.js в официальном проекте..

Или, если хотите, просто загрузите встроенный файл dropbox.js из CDN (что проще и быстрее, однако вместо этого вы можете собрать проект, чтобы получить его последнюю версию):

Затем включите файл dropbox.js в свой проект, и все готово.

Веб-приложения могут использовать различные методы и пользовательский интерфейс (например, вам необходимо создать файловый браузер вручную), чтобы провести пользователя через этот процесс, поэтому dropbox.js позволяет коду приложения подключаться к процессу авторизации путем реализации драйвера аутентификации. dropbox.js поставляется с парой встроенных драйверов аутентификации, которые являются отличным способом для быстрого запуска разработки приложений. Когда потребности вашего приложения перерастут встроенные драйверы, прочитайте руководство по драйверам для получения дополнительной информации о реализации пользовательского драйвера для аутентификации.

Для этой статьи был создан тестовый проект с использованием следующих команд cordova:

# Create the project
cordova create hello com.example.hello HelloWorld
# Add the android platform
cordova platform add android --save
# Important we need the inappbrowser plugin in the project
cordova plugin add cordova-plugin-inappbrowser

Шаблон будет стандартным шаблоном Cordova. Помните, что вам нужно иметь в своем проекте cordova-plugin-inappbrowser. Теперь, чтобы начать процесс входа в систему, используйте следующий код (не забудьте изменить DROPBOX_APP_KEY на свой) :

var DROPBOX_APP_KEY = 'hereyourappkey';
var client = new Dropbox.Client({key: DROPBOX_APP_KEY});
client.authDriver(new Dropbox.AuthDriver.Cordova());
function SuccessCallback(){
// Now from here you can use the client to download
// upload, create ,delete etc
// Write here the code you need to execute as download etc.
// client.readFile
// client.readdir
// client.writeFile
}
// Open the login form of Dropbox and if the user already granted the access
// Only execute the SuccessCallback
client.authenticate(function(error){
// If an error happens
if (error) {
console.log('Authentication error: ' + error);
return;
}
if(client.isAuthenticated()) {
console.log("Now you can do whatever you want here :3 list a folder, upload or download etc.");
SuccessCallback();
} else {
alert("No Dropbox Authentication detected, try again");
}
});

Обратите внимание, что если пользователь уже вошел в форму, в следующий раз, когда будет выполнен предыдущий код, шаг входа в систему не потребуется, пока не будет очищен localStorage. Если у вас был только белый экран в процессе, не забудьте добавить приемник перенаправления в настройках приложения Dropbox.

Теперь в тестовом приложении будет добавлена ​​кнопка и будет выполнен предыдущий код.

Изображение проекта

И форма входа будет отображаться как ожидалось:

Dropbox логин кордова

После входа в систему код внутри SuccessCallback Функция должна быть выполнена без каких-либо осложнений. Иногда в первый раз после входа в систему белый экран немного исчезает (2-4 секунды, потому что будет загружена новая страница Dropbox), но не волнуйтесь, после того, как она будет работать нормально.

Выполнение обычных задач

Аутентификация была сложной частью интеграции API, а обработка ошибок была самой скучной частью. Теперь, когда они оба позади, вы можете взаимодействовать с Dropbox пользователя и сосредоточиться на кодировании своего приложения.

Все задачи должны быть выполнены с помощью переменной клиента. Как показано на предыдущем шаге, пользователь должен предоставить вам права на управление своими файлами Dropbox через форму входа.

С помощью переменной client вы сможете выполнять следующие общие задачи. Помните, что в dropbox пути относительны, что означает, что ваш путь в Dropbox будет / , Следовательно, если вы хотите прочитать файл в папке с кодом, которая находится в вашем Dropbox, путь к файлу будет: /code/myfile.txt,

Чтение файла

Чтобы скачать файл, используйте readFile метод клиента:

client.readFile("/myfolder/myfile.txt", function(error, data) {
if (error) {
// Something went wrong
// If you want a detailed explanation, read the getting started guide
// (INVALID_TOKEN,NETWORK_ERROR,NOT_FOUND etc.)
return console.log(error);
}
console.log(data);  // data has the file's contents
});

Список содержимого каталога

Для просмотра файла используйте readdir метод:

// Read the main dropbox content
// or the content of a specific folder
//client.readdir("/myfolder/a-folderinside-myfolder", function(error, entries) {
client.readdir("/", function(error, entries) {
if (error) {
return console.log(error);  // Something went wrong.
}
console.log("Your Dropbox contains the following folders and files:");
console.log(entries);
});

Ловить ошибки во всем мире

Если вы не хотите писать специальный код для каждой ошибки в вашем коде, вы можете использовать глобальный слушатель onError клиента.

client.onError.addListener(function(error) {
// An error ocurred, you may want to save this somewhere
// To analyze what is failing in your code or with the user
console.error(error);
});

Написание файла

Чтобы создать удаленный файл, используйте writeFile метод:

client.writeFile("hello_world.txt", "Hello, world!\n", function(error, stat) {
if (error) {
return console.log(error);
}
console.log(stat);
console.log("File saved as revision " + stat.versionTag);
});

Вы можете найти больше информации о задачах, которые вы можете выполнить с помощью клиента Javascript, читая официальный документ readme здесь или же анализируя примеры фрагментов здесь. Повеселись

Ссылка на основную публикацию
Adblock
detector