Skip to content

Instantly share code, notes, and snippets.

@gterzian
Last active December 23, 2015 14:29
Show Gist options
  • Save gterzian/6649545 to your computer and use it in GitHub Desktop.
Save gterzian/6649545 to your computer and use it in GitHub Desktop.
Django views for Dropbox oauth
'''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