Использование Dropbox API в приложениях Django, как? - PullRequest
4 голосов
/ 22 июня 2011

Может кто-нибудь показать пример использования API Dropbox с Django? Dropbox api установлен, readme готов, тесты выполнены, как идти дальше?

Ответы [ 2 ]

6 голосов
/ 11 июля 2011

Да, вам нужно понять, как работает oauth. Рассмотрим вариант использования, когда вы пытаетесь сохранить загруженные файлы непосредственно в учетной записи пользователя Dropbox. Прежде всего, вам необходимо зарегистрировать аккаунт разработчика на сайте dropbox. В ваших представлениях django типичный рабочий процесс выглядит так:

  1. спросите в Dropbox токен запроса, (это уведомляет их, что вы будете использовать их API скоро)

    dba = auth.Authenticator(app_settings.CONFIG)

    request_token = dba.obtain_request_token()

    это в документации API как настроить файл конфигурации

  2. , чем вы создаете URL аутентификации:

    authorize_url = dba.build_authorize_url(request_token, callback='http://...'

    пользователь залогинится на dropbox.com, чем перенаправлен обратно на ваш сайт

    Теперь вы должны хранить запрос токен, но полезно только получить токен доступа!

  3. вы используете токен запроса, чтобы получить токен доступа, теперь он уникален для пользователь.

    access_token = dba.obtain_access_token(request_token, 'verifier')

    оставьте верификатор пустым, он будет сохранен в будущем! сохранить токен доступа, он понадобится вам в любой дальнейшей операции (за сеанс)

  4. вот ты где! Вы должны создать экземпляр клиента, это определено в специфичном для Python dropbox пакет

    drpbx_client = client.DropboxClient('server','content_server','port',dba,access_token)

    клиент является вспомогательным объектом для файловых операций:

    drpbx_client.put_file('dropbox', '/porn/', request.FILES['file'])

5 голосов
/ 22 июня 2011

Вы должны использовать API Dropbox REST:

http://www.dropbox.com/developers/docs#api-specification

Он использует oauth для аутентификации. Подробное руководство и пошаговое руководство можно найти здесь:

http://hueniverse.com/oauth/

...