コード例 #1
0
ファイル: dropboxlogin.py プロジェクト: cclauss/Pythonista-4
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
コード例 #2
0
ファイル: views.py プロジェクト: unlucky/hcrab
def dropbox_authrized(request):
    back_url = reverse(index)

    uid = request.GET.get('uid', '')
    oauth_token = request.GET.get('oauth_token', '')
    if not uid and not oauth_token:
        info = u'Dropbox 认证出问题了 :( 麻烦再一遍。'
        return render_to_response('info.html', {
            'info': info,
            'interval': 3,
            'back_url': back_url
        })

    request_key = request.session.get('request_key')
    request_secret = request.session.get('request_secret')
    if not request_key and not request_secret:
        info = u'请打开浏览器cookie支持。'
        return render_to_response('info.html', {
            'info': info,
            'interval': 3,
            'back_url': back_url
        })

    request_token = session.OAuthToken(request_key, request_secret)
    sess = session.DropboxSession(settings.DROPBOX_APP_KEY,
                                  settings.DROPBOX_APP_SECRET,
                                  settings.DROPBOX_ACCESS_TYPE)
    access_token = sess.obtain_access_token(request_token)

    user, is_created = DropboxUser.objects.get_or_create(uid=uid)
    user.access_key = access_token.key
    user.access_secret = access_token.secret
    #client = client = client.DropboxClient(sess)
    #info = client.account_info()
    user.save()

    request.session['dropbox_uid'] = uid

    info = 'Ok, Dropbox 认证成功 :)'
    return render_to_response('info.html', {
        'info': info,
        'interval': 3,
        'back_url': back_url
    })
コード例 #3
0
def get_access_token():
    if not os.path.exists('dbturret_token'):
        sess = session.DropboxSession(APP_KEY, APP_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()
     
        access_token = sess.obtain_access_token(request_token)
     
        with open("dbturret_token", 'w') as f:
            f.write(access_token.key+chr(0)+access_token.secret)
     
    with open("dbturret_token") as f:
        key, secret = f.read().strip().split(chr(0))
        access_token = session.OAuthToken(key, secret)
        return access_token
コード例 #4
0
ファイル: dropbox_client.py プロジェクト: mitusha/symphytum
def main():
    error = False
    if len(argv) < 4:
        print "Missing arguments. Usage:", argv[0], "<app secret>", \
        "<access token> <command> [<args>]"
        exit(0)

    global APP_SECRET, ACCESS_TOKEN
    APP_SECRET = argv[1]
    access_token_string = argv[2]
    command = argv[3]

    dsession = session.DropboxSession(APP_KEY, APP_SECRET, ACCESS_TYPE)
    # if access token has ben specified, set it
    if access_token_string != "none":
        l = access_token_string.split('_')
        if len(l) < 2:
            print "Error:Invalid access token"
            exit(0)
        key = l[0]
        secret = l[1]
        dsession.set_token(key, secret)

    dclient = client.DropboxClient(dsession)

    try:
        if command == "authorize_url":
            request_token = get_request_token(dsession)
            print ":Request token:" + request_token.key + "_" + request_token.secret + ":"
            print ":URL:" + get_authorize_url(dsession, request_token) + ":"
        elif command == "create_access_token":
            if len(argv) >= 5:
                token_string = argv[4]
            else:
                token_string = "invalid_invalid"
            l = token_string.split('_')
            key = l[0]
            secret = l[1]
            request_token = session.OAuthToken(key, secret)
            access_token = get_access_token(dsession, request_token)
            print ":Access token:" + access_token.key + "_" + access_token.secret + ":"
        elif command == "user_name":
            print ":User:"******":"
        elif command == "upload_file":
            if len(argv) < 6:
                print "Error:Arguments missing in upload_file()"
                exit(0)
            src = argv[4]
            dest = argv[5]
            response = upload_file(dclient, src, dest)
            print response
        elif command == "upload_file_chunked":
            if len(argv) < 6:
                print "Error:Arguments missing in upload_file_chunked()"
                exit(0)
            src = argv[4]
            dest = argv[5]
            upload_file_chunked(dclient, src, dest)
        elif command == "download_file":
            if len(argv) < 6:
                print "Error:Arguments missing in download_file()"
                exit(0)
            src = argv[4]
            dest = argv[5]
            response = download_file(dclient, src, dest)
            print response
        elif command == "delete_file":
            if len(argv) < 5:
                print "Error:Arguments missing in delete_file()"
                exit(0)
            delete_file(dclient, argv[4])
            print "Delete:OK"
        else:
            print "Error:Invalid command"

    except Exception, e:
        print "Error:" + str(e)
        exit(0)
コード例 #5
0
 def link2(self):
     with open('entry.pickle', 'rb') as f:
         (akey,asecret) = pickle.load(f)
         request_token = session.OAuthToken(akey,asecret)
     self.obtain_access_token(request_token)
     self.write_creds(self.token)