def save_dropbox_account_info(self): """ Saves user account information from dropbox in database """ db_sess = MDBDropboxSession(self.token_string) info = db_sess.get_account_info() if 'display_name' in info: self.first_name, self.last_name = info['display_name'].split(" ") if 'email' in info: self.email = info['email'] self.save(force_update=True)
def get_dropbox_auth_url(self): """ First step in linking User to mdb_dropbox App User needs to authorize the app via provided url Returns: auth_url """ if self.token_string != "": raise MDBException("FATAL: Dropbox app already authorized for user %s ?!" % self.username) db_sess = MDBDropboxSession() auth_request_token = db_sess.obtain_request_token() MDBUser.objects.filter(pk=self.pk).update( auth_token = "|".join([auth_request_token.key, auth_request_token.secret]) ) return db_sess.build_authorize_url(auth_request_token)
def save_access_token(self): """ Second step in linking User to mdb_dropbox App: After user authorized the app in first step, we can obtain access_token and use it in all API calls Returns: nothing """ if self.token_string != "": raise MDBException("FATAL: Dropbox app already authorized for user %s ?!" % self.username) # Obtain access token and save it for later use db_sess = MDBDropboxSession() #noinspection PyTupleAssignmentBalance token, key = self.auth_token.split('|') auth_request_token = oauth.OAuthToken(token,key) try: db_sess.obtain_access_token(auth_request_token) except Exception, e: raise MDBException("FATAL: Can't obtain access token for user %s (%s)" % (self.username, e))