Last active
December 23, 2015 14:29
-
-
Save gterzian/6649545 to your computer and use it in GitHub Desktop.
Django views for Dropbox oauth
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
'''add all the django relevant imports''' | |
import dropbox | |
dropbox_session = dropbox.session.DropboxSession(settings.DROPBOX_KEY, settings.DROPBOX_SECRET, settings.DROPBOX_ACCESS_TYPE) | |
def dropbox_authorize_url(request): | |
request_token = dropbox_session.obtain_request_token() | |
saved_token = RequestToken(user=request.user, secret=request_token.secret, key=request_token.key) | |
saved_token.save() | |
url = dropbox_session.build_authorize_url(request_token, oauth_callback=settings.DROPBOX_CALLBACK) | |
return HttpResponseRedirect(url) | |
def dropbox_redirect(request): | |
if 'oauth_token' in request.GET and request.GET['oauth_token']: | |
request_token = get_object_or_404(RequestToken, key=request.GET['oauth_token'], user=request.user) | |
dropbox_session.set_request_token(request_token.key, request_token.secret) | |
access_token = dropbox_session.obtain_access_token() | |
#user needs to be logged in for this to work... | |
saved_token = AccessToken(key=access_token.key, secret=access_token.secret, user=request.user,) | |
saved_token.save() | |
dropbox = DropBox(access_token=saved_token) | |
dropbox.userprofile=request.user.userprofile | |
dropbox.save() | |
return HttpResponseRedirect(reverse('dashboard')) | |
else: | |
return HttpResponse('sorry there was an error') |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment