def exchange_token(tokens, client_id, secret, code): response = requests.post( EXCHANGE_TOKEN_ENDPOINT, data={ "code": code, "client_id": client_id, "client_secret": secret, "grant_type": "authorization_code", "redirect_uri": OOB_URL, "expires_in": 0, }, ).json() if "access_token" in response: tokens.save_token( SERVICE, response["access_token"], response["token_type"], response["refresh_token"], time() + response["expires_in"], ) return response["access_token"] else: # Some error log.error("Error negotiating %s token: %s" % (SERVICE, response)) raise ValueError("Error negotiating %s token: %s" % (SERVICE, response))
def do_upload(album_endpoint, filename, name, access_token, token_type): headers = { "GData-Version": 2, "Slug": name, "Content-Type": "image/jpeg", "Authorization": "%s %s" % (token_type, access_token), "Content-Length": os.stat(filename).st_size, "MIME-version": "1.0", } session = requests.Session() request = requests.Request("POST", album_endpoint, data=open(filename, "rb"), headers=headers) response = session.send(request.prepare()) if response.status_code > 300: log.error("Failed to upload: %s" % response.text) raise ValueError(response.text) return response.text
def refresh_access_token(tokens, client_id, secret, refresh_token): response = requests.post( EXCHANGE_TOKEN_ENDPOINT, data={ "refresh_token": refresh_token, "client_id": client_id, "client_secret": secret, "grant_type": "refresh_token", }, ).json() tokens.update_token(SERVICE, response["access_token"], response["token_type"], time() + response["expires_in"]) if "access_token" in response: return response["access_token"] else: # Some error log.error("Error refreshing %s token: %s" % (SERVICE, response)) raise ValueError("Error refreshing %s token: %s" % (SERVICE, response))