def __init__(self): APP_KEY = '30pb1xxpccvhfqo' APP_SECRET = 'kap2qg8dt2cp7cv' ACCESS_TYPE = 'app_folder' self.sess = session.DropboxSession(APP_KEY, APP_SECRET, ACCESS_TYPE) request_token = 's8123g2tz0fb73a' request_token_secret = 'kwsa9sapz264uq5' access_token = 'q6lds714ncu45k3' access_token_secret = 'elvc3gmgbw8b99f' self.sess.set_request_token(request_token, request_token_secret) self.sess.set_token(access_token, access_token_secret)
def goToLogin(request): sess = session.DropboxSession(APP_KEY, APP_SECRET, ACCESS_TYPE) request_token = sess.obtain_request_token() request.session['token'] = request_token request.session['sess'] = sess request.session['LoggedIn'] = False url = sess.build_authorize_url( request_token, oauth_callback='http://127.0.0.1:8000/homepage/') t = get_template('goToLogin.html') html = t.render(Context({'url': url, 'MEDIA_URL': MEDIA_URL})) return HttpResponse(html)
def dropbox_sign(request): sess = session.DropboxSession(settings.DROPBOX_APP_KEY, settings.DROPBOX_APP_SECRET, settings.DROPBOX_ACCESS_TYPE) request_token = sess.obtain_request_token() url = sess.build_authorize_url( request_token, oauth_callback=settings.DROPBOX_AUTHRIZED_CALLBACK_URL) print url request.session['request_key'] = request_token.key request.session['request_secret'] = request_token.secret return redirect(url)
def GenerateUserAuthorizationURL(self, level=None): full = level == "full" if full: sess = session.DropboxSession(DROPBOX_FULL_APP_KEY, DROPBOX_FULL_APP_SECRET, "dropbox") else: sess = session.DropboxSession(DROPBOX_APP_KEY, DROPBOX_APP_SECRET, "app_folder") reqToken = sess.obtain_request_token() redis.setex("dropbox:oauth:%s" % reqToken.key, pickle.dumps(reqToken), timedelta(hours=24)) return sess.build_authorize_url( reqToken, oauth_callback=WEB_ROOT + reverse("oauth_return", kwargs={ "service": "dropbox", "level": "full" if full else "normal" }))
def main(*argv): ''' Usage: ./get.py /path/to/folder or ./get.py will save the CaheirDeManip.doc in your current directory ''' if len(argv) > 0: sendToThisDir = argv[0] else: sendToThisDir = '.' akey = '5p5o73o3r35uz8g' asecret = 'hz7ffxbyqa1pql9' atyp = 'dropbox' homedir = os.path.expanduser('~') rcfile = os.path.join(homedir, '.cahierdemanip') sess = session.DropboxSession(akey, asecret, atyp) access_token = '' if os.path.isfile(rcfile): f = open(rcfile, 'r') access_token = pickle.load(f) sess.set_token(access_token.key, access_token.secret) else: reqtok = sess.obtain_request_token() url = sess.build_authorize_url(reqtok) print 'you must authenticate this app. Please click on the following URL.' print url print 'When you are finished, press Return' raw_input() try: f = open(rcfile, 'w') access_token = sess.obtain_access_token(reqtok) pickle.dump(access_token, f) except: print "authentication failed, try again." os.remove(rcfile) sys.exit(0) print 'connecting to account...' try: cl = client.DropboxClient(sess) info = cl.account_info() print "linked account:", info['display_name'], info['email'] except: print "authentication failed, try again." os.remove(rcfile) sys.exit(0) print 'downloading Cahier de Manip to', sendToThisDir out = open(os.path.join(sendToThisDir, 'CAHIER_DE_MANIP.doc'), 'w') out.write(cl.get_file('/cahierdemanip/CAHIER_DE_MANIP.doc').read())
def get_access_token(): token_str = keychain.get_password('dropbox', app_key) if token_str: key, secret = pickle.loads(token_str) return session.OAuthToken(key, secret) request_token = get_request_token() sess = session.DropboxSession(app_key, app_secret, access_type) access_token = sess.obtain_access_token(request_token) token_str = pickle.dumps((access_token.key, access_token.secret)) keychain.set_password('dropbox', app_key, token_str) return access_token
def RetrieveAuthorizationToken(self, req, level): from tapiriik.services import Service tokenKey = req.GET["oauth_token"] redis_key = "dropbox:oauth:%s" % tokenKey token = redis.get(redis_key) assert token token = pickle.loads(token) redis.delete(redis_key) full = level == "full" if full: sess = session.DropboxSession(DROPBOX_FULL_APP_KEY, DROPBOX_FULL_APP_SECRET, "dropbox") else: sess = session.DropboxSession(DROPBOX_APP_KEY, DROPBOX_APP_SECRET, "app_folder") accessToken = sess.obtain_access_token(token) uid = int(req.GET["uid"]) # duh! return (uid, {"Key": accessToken.key, "Secret": accessToken.secret, "Full": full})
def RetrieveAuthorizationToken(self, req, level): from tapiriik.services import Service tokenKey = req.GET["oauth_token"] token = self.OutstandingReqTokens[tokenKey] del self.OutstandingReqTokens[tokenKey] full = level == "full" if full: sess = session.DropboxSession(DROPBOX_FULL_APP_KEY, DROPBOX_FULL_APP_SECRET, "dropbox") else: sess = session.DropboxSession(DROPBOX_APP_KEY, DROPBOX_APP_SECRET, "app_folder") accessToken = sess.obtain_access_token(token) uid = int(req.GET["uid"]) # duh! return (uid, { "Key": accessToken.key, "Secret": accessToken.secret, "Full": full })
def backup_to_dropbox(): from dropbox import client, session from conf import dropbox_access_key, dropbox_secret_key from webnotes.utils.backups import new_backup from webnotes.utils import get_files_path, get_backups_path if not webnotes.conn: webnotes.connect() sess = session.DropboxSession(dropbox_access_key, dropbox_secret_key, "app_folder") sess.set_token( webnotes.conn.get_value("Backup Manager", None, "dropbox_access_key"), webnotes.conn.get_value("Backup Manager", None, "dropbox_access_secret")) dropbox_client = client.DropboxClient(sess) # upload database backup = new_backup() filename = os.path.join(get_backups_path(), os.path.basename(backup.backup_path_db)) upload_file_to_dropbox(filename, "/database", dropbox_client) webnotes.conn.close() response = dropbox_client.metadata("/files") # upload files to files folder did_not_upload = [] error_log = [] path = get_files_path() for filename in os.listdir(path): filename = cstr(filename) if filename in ignore_list: continue found = False filepath = os.path.join(path, filename) for file_metadata in response["contents"]: if os.path.basename(filepath) == os.path.basename( file_metadata["path"]) and os.stat( filepath).st_size == int(file_metadata["bytes"]): found = True break if not found: try: upload_file_to_dropbox(filepath, "/files", dropbox_client) except Exception: did_not_upload.append(filename) error_log.append(webnotes.getTraceback()) webnotes.connect() return did_not_upload, list(set(error_log))
def get_dropbox_client(self): """ Connect and return a Dropbox client object. """ self.read_token_file() sess = session.DropboxSession(self.DBBACKUP_DROPBOX_APP_KEY, self.DBBACKUP_DROPBOX_APP_SECRET, self.DBBACKUP_DROPBOX_ACCESS_TYPE) # Get existing or new access token and use it for this session access_token = self.get_access_token(sess) sess.set_token(access_token.key, access_token.secret) dropbox = DropboxClient(sess) # Test the connection by making call to get account_info dropbox.account_info() return dropbox
def _get_request_token(self): console.clear() print 'Getting request token...' sess = session.DropboxSession(self.app_key, self.app_secret, self.access_type) request_token = sess.obtain_request_token() url = sess.build_authorize_url(request_token) console.clear() v = ui.WebView() v.load_url(url) v.present() v.wait_modal() return request_token
def initialize_dropbox_client(self): """ Initializes the dropbox connection via a client session, using pre-defined authenticaion keys The client is then set within the class attribute. Visit dropbox developer website to obtain OAuthentication keys. """ sess = session.DropboxSession(self.dropbox_settings['APP_KEY'], self.dropbox_settings['APP_SECRET'], self.dropbox_settings['ACCESS_TYPE']) sess.set_token(self.dropbox_settings['TOKEN_KEY'], self.dropbox_settings['TOKEN_SECRET']) self.dropbox_client = client.DropboxClient(sess) disable_warnings()
def __init__(self): sess = session.DropboxSession(appkeys.DROPBOX['key'], \ appkeys.DROPBOX['secret'], 'app_folder') request_token = sess.obtain_request_token() url = sess.build_authorize_url(request_token) os.system("xdg-open {0}".format(url)) print("Press enter when authentication has completed") raw_input() access_token = sess.obtain_access_token(request_token) self.client = client.DropboxClient(sess) print("Linked account")
def create_dropbox(config, options): APP_KEY = options['apikey'] APP_SECRET = options['apisecret'] ACCESS_TYPE = config['dropbox']['access_type'] sess = session.DropboxSession(APP_KEY, APP_SECRET, ACCESS_TYPE) token = get_token(config, options, sess) sess.set_token(*token) dropbox = client.DropboxClient(sess) return dropbox
def __init__(self): APP_KEY = private.APP_KEY APP_SECRET = private.APP_SECRET ACCESS_TYPE = private.ACCESS_TYPE sess = session.DropboxSession(APP_KEY, APP_SECRET, ACCESS_TYPE) request_token = sess.obtain_request_token() url = sess.build_authorize_url(request_token) webbrowser.open_new(url) print "Please authorize in the browser. After you're done, press enter." raw_input() # This will fail if the user didn't visit the above URL and hit 'Allow' access_token = sess.obtain_access_token(request_token) self.client = client.DropboxClient(sess)
def get_dropbox_session(): try: from dropbox import session except: frappe.msgprint(_("Please install dropbox python module"), raise_exception=1) if not (frappe.conf.dropbox_access_key or frappe.conf.dropbox_secret_key): frappe.throw(_("Please set Dropbox access keys in your site config")) sess = session.DropboxSession(frappe.conf.dropbox_access_key, frappe.conf.dropbox_secret_key, "app_folder") return sess
def get_dropbox_session(self): try: from dropbox import session except: raise Exception(_("Please install dropbox python module")) if not (self.app_access_key or self.app_secret_key): raise Exception(_("Please set Dropbox access keys in your site config")) sess = session.DropboxSession(self.app_access_key, self.get_password(fieldname="app_secret_key", raise_exception=False), "app_folder") return sess
def get_dropbox_session(): try: from dropbox import session except: webnotes.msgprint(_("Please install dropbox python module"), raise_exception=1) try: from conf import dropbox_access_key, dropbox_secret_key except ImportError: webnotes.msgprint(_("Please set Dropbox access keys in") + " conf.py", raise_exception=True) sess = session.DropboxSession(dropbox_access_key, dropbox_secret_key, "app_folder") return sess
def __init__(self, main_view): # Get your app key and secret from the Dropbox developer website APP_KEY = DROPBOX_APP_KEY APP_SECRET = DROPBOX_APP_SECRET ACCESS_TYPE = 'app_folder' self.main_view = main_view sess = session.DropboxSession(APP_KEY, APP_SECRET, ACCESS_TYPE) token = self.get_access_token(sess) sess.set_token(*token) self.client = client.DropboxClient(sess)
def authenticate_dropbox(self, settings): """ Authenticates the application for the user's Dropbox account. """ db_session = session.DropboxSession(settings['dropbox_api_key'], settings['dropbox_app_secret'], settings['dropbox_access_type']) token_key, token_secret = self.retrieve_request_token(db_session) db_session.set_token(token_key, token_secret) self.dropbox_client = client.DropboxClient(db_session) self.queue = DropboxSynchronizer(self.dropbox_client).start()
def dropbox(APP_KEY, APP_SECRET, ACCESS_TYPE, upload_file): global client sess = session.DropboxSession(APP_KEY, APP_SECRET, ACCESS_TYPE) request_token = sess.obtain_request_token() url = sess.build_authorize_url(request_token) # Make the user sign in and authorize this token open(url, modal=True) raw_input('Please press enter to continue') # This will fail if the user didn't visit the above URL and hit 'Allow' access_token = sess.obtain_access_token(request_token) client = client.DropboxClient(sess) response = client.put_file('Script Backups' + upload_file, upload_file)
def dropbox(APP_KEY, APP_SECRET, ACCESS_TYPE, upload_file): global client sess = session.DropboxSession(APP_KEY, APP_SECRET, ACCESS_TYPE) request_token = sess.obtain_request_token() url = sess.build_authorize_url(request_token) # Make the user sign in and authorize this token webbrowser.open(url, modal=False, stop_when_done=False) input() # This will fail if the user didn't visit the above URL and hit 'Allow' access_token = sess.obtain_access_token(request_token) client = client.DropboxClient(sess) response = client.put_file(upload_file, upload_file)
def __init__(self, conn, server): asynchat.async_chat.__init__(self, conn) self.buffer = [] self.set_terminator("\r\n") self.authenticated = False self.data_channel = None self.server = server self.out_data_q = None self.receiver_callback = None # Dropbox client self.db_client = None self.db_chunk_size = 1024000 # 1mb chunk size for db uploads self.session = session.DropboxSession(self.server.dbKey, self.server.dbSecret, 'dropbox')
def login(self): serialized_token = open(self.TOKEN_FILE).read() if serialized_token.startswith('oauth1:'): access_key, access_secret = serialized_token[len('oauth1:' ):].split(':', 1) sess = session.DropboxSession(self.app_key, self.app_secret) sess.set_token(access_key, access_secret) self.api_client = client.DropboxClient(sess) print "[loaded OAuth 1 access token]" elif serialized_token.startswith('oauth2:'): access_token = serialized_token[len('oauth2:'):] self.api_client = client.DropboxClient(access_token) print "[loaded OAuth 2 access token]" else: raise ("Malformed access token in %r." % (self.TOKEN_FILE, ))
def handle_noargs(self, *args, **options): sess = session.DropboxSession(DROPBOX.app_key, DROPBOX.app_secret, DROPBOX.access_type) request_token = sess.obtain_request_token() url = sess.build_authorize_url(request_token) print "Url:", url print "Please visit this website and press the 'Allow' button, then hit 'Enter' here." raw_input() # This will fail if the user didn't visit the above URL and hit 'Allow' access_token = sess.obtain_access_token(request_token) print "DROPBOX.access_token = '%s'" % access_token.key print "DROPBOX.access_secret = '%s'" % access_token.secret
def handle_noargs(self, *args, **options): sess = session.DropboxSession(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TYPE) request_token = sess.obtain_request_token() url = sess.build_authorize_url(request_token) print "Url:", url print "Please visit this website and press the 'Allow' button, then hit 'Enter' here." raw_input() # This will fail if the user didn't visit the above URL and hit 'Allow' access_token = sess.obtain_access_token(request_token) print "DROPBOX_ACCESS_TOKEN = '%s'" % access_token.key print "DROPBOX_ACCESS_TOKEN_SECRET = '%s'" % access_token.secret
def dbclient(): # Get your app key and secret from the Dropbox developer website sess = session.DropboxSession(DROPBOX_APP_KEY, DROPBOX_APP_SECRET, access_type) token_key, token_secret = readTokenFile() if len(token_key) == 0: token_key, token_secret = obtainTokens(sess) if len(token_key) == 0: return None, "Authorization not passed." writeTokenFile(token_key, token_secret) sess.set_token(token_key, token_secret) dbclient = client.DropboxClient(sess) if testDropboxClient(dbclient): return dbclient, "OK." return None, "Problem with authorization. Try again."
def do_login_oauth1(self): """log in to a Dropbox account""" sess = session.DropboxSession(self.app_key, self.app_secret) request_token = sess.obtain_request_token() authorize_url = sess.build_authorize_url(request_token) sys.stdout.write("1. Go to: " + authorize_url + "\n") sys.stdout.write( "2. Click \"Allow\" (you might have to log in first).\n") sys.stdout.write("3. Press ENTER.\n") raw_input() try: access_token = sess.obtain_access_token() except rest.ErrorResponse, e: self.stdout.write('Error: %s\n' % str(e)) return
def __init__(self, request, key="", secret="", access_type="app_folder", login_url="", on_login_failure=None, ): self.request = request self.key = key self.secret = secret self.access_type = access_type self.login_url = login_url self.on_login_failure = on_login_failure self.sess = session.DropboxSession( self.key, self.secret, self.access_type)
def dropbox_connect(tokenfile, keyfile): """ Initialize an open connection with the configured dropbox account. """ # Get your app key and secret from the Dropbox developer website with open(keyfile, 'r') as mykeys: keydata = {k: v for line in mykeys for k, v in line.split()} APP_KEY = keydata['app_key'] APP_SECRET = keydata['app_secret'] ACCESS_TYPE = 'app_folder' with open(tokenfile, 'r') as mytoken: TOKEN_KEY, TOKEN_SECRET = mytoken.split('|') sess = session.DropboxSession(APP_KEY, APP_SECRET, ACCESS_TYPE) sess.set_token(TOKEN_KEY, TOKEN_SECRET) return sess