Интеграция Dropbox в пользовательское приложение PHP

Я работаю над приложением PHP, в котором мне нужно использовать веб-сервис Dropbox. Требование заключается в том, что когда пользователь нажимает на ссылку «Интегрировать с Dropbox», должно отображаться всплывающее окно входа в Dropbox, а после успешного входа в систему должно отображаться другое всплывающее окно, в котором пользователь может выбрать папку Dropbox. Затем, когда пользователь загружает файл из моего пользовательского приложения PHP, этот файл должен храниться в выбранной папке Dropbox.

Во всем этом процессе пользователь не должен перенаправляться из моего пользовательского приложения PHP.

Как мне этого добиться?

Нужно ли создавать всплывающее окно входа в систему для Dropbox, или Dropbox предоставляет один?

0

Решение

Я полагаю, что вы можете найти всю информацию о регистрации пользователя и загрузке данных здесь:

Dropbox — Использование Core API в PHP

Как видите, вы должны создать приложение, получить токен доступа (через поток OAuth2) и использовать его для выполнения запросов API от имени пользователя. Если вам нужно сохранить своего пользователя на вашем сайте, вы можете задействовать Ajax для создания структуры, позволяющей выполнять вход в систему, авторизацию и т. Д.

В основном это шаги:

// Include Dropbox PHP Sdk and create a new AuthBase instance (WebAuthNoRedirect is a subclass of).
$dropboxAppAuth = new dbx\WebAuth($yourAppInfo, "examples-authorize", new dbx\ArrayEntryStore($_SESSION, 'dropbox-auth-csrf-token'););

// Get an authorize url
$authorizeUrl = $dropboxAppAuth->start();

// Invite the user to authorize your app via this url
echo "1. Go to: " . $authorizeUrl . "\n";
echo "2. Click \"Allow\" (you might have to log in first).\n";
...

// and get an access token from the GET array.
list($accessToken, $userId, $urlState) = $webAuth->finish($_GET);

// Now you need a Client instance to make you call using the API interface
$dropboxClient = new dbx\Client($accessToken, "examples-authorize");
$accountInfo = $dropboxClient->getAccountInfo();

// Get a file pointer resource from the resource you want to upload and send it using the `uploadFile()` method from the Dropbox API
$resourceFilename = 'my-data.txt';
$f = fopen($resourceFilename, "rb");
$result = $dropboxClient->uploadFile("/".$resourceFilename, dbx\WriteMode::add(), $f);

Однако в конце этой страницы вы можете найти этот базовый пример, полный и готовый начать играть с ним.

0

Другие решения

Вы исследовали API Dropbox?

https://www.dropbox.com/developers/dropins/saver

Вы не можете сделать это, используя только PHP, вам нужен AJAX для сохранения данных в Dropbox.

0

По вопросам рекламы [email protected]