Приложение Dropbox, предназначенное для взаимодействия только с одной учетной записью Dropbox


Мне нужна простая веб-форма, которая также позволяет людям загружать некоторые PDF-файлы. Что я думал, что я мог бы сделать (из-за размера и количества загруженных файлов), так это привязать серверную часть этого приложения либо к моей учетной записи dropbox, либо к моей box.com счет. Обе службы предлагают аналогичные API для создания приложений.

Однако они оба предполагают, что я хочу взаимодействовать с аккаунтом людей в dropbox/box. Я думаю, что в некотором роде хочу обратного. Люди будут загружать файлы на веб-сервер, но я хочу загрузите их программно в любую из этих 2 служб, но под МОЕЙ учетной записью с доступом и разрешениями, относящимися только к МОЕЙ учетной записи.

Пользователям вообще не нужно взаимодействовать с dropbox, им не нужно ничего утверждать. Почему кажется невозможным использовать API таким образом, чтобы файлы можно было добавлять в ту же ранее известную учетную запись dropbox, которой я владею?

Author: NullUserException, 2012-11-15

2 answers

Хотя это не предназначено для использования, основная идея заключалась бы в том, чтобы вручную получить маркер авторизованного доступа для учетной записи один раз, а затем сохранить и повторно использовать его для всех будущих вызовов. (Просто убедитесь, что не отменяете его.)

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

 4
Author: Greg, 2012-11-16 19:25:28

У меня была аналогичная проблема с использованием API Facebook (FB) в нескольких случаях - когда я хотел, чтобы мой сервер разговаривал с FB для синхронизации с моей учетной записью - но API, как правило, предназначен для использования с учетной записью человека, получающего доступ к сайту.

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

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

------            ----------                               -------
| UI | -> AJAX -> | Server | -> Async GET w/Credentials -> | API |
------            ----------                               -------

Затем вы получаете данные обратно на уровне Server и возвращаете их в пользовательский интерфейс в формате JSON - и вуаля, ваш пользовательский интерфейс не имеет учетных данных, но все еще имеет доступ к вашему Dropbox.

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

Я надеюсь, что это поможет. :) Требуется немного строительных лесов - но это возможно! Имейте веру!

 2
Author: Troy Alford, 2012-11-25 07:05:50