def token_updater(token): global AccessToken global RefreshToken global ExpiresAt AccessToken = token['access_token'] RefreshToken = token['refresh_token'] ExpiresAt = token['expires_at'] print_data(token, 0, 1) WriteTokens(AccessToken.encode('utf-8'), RefreshToken.encode('utf-8'), ExpiresAt) return token
def GetNewAccessToken(RefToken): print_json('status', 'Getting a new access token') #Form the data payload BodyText = {'grant_type': 'refresh_token', 'refresh_token': RefToken} #URL Encode it BodyURLEncoded = urlencode(BodyText).encode("utf-8") #print "Using this as the body when getting access token >>" + BodyURLEncoded #Start the request tokenreq = Request(TokenURL, BodyURLEncoded) print(TokenURL) print(BodyURLEncoded) #Add the headers, first we base64 encode the client id and client secret with a : inbetween and create the authorisation header head = client_id + ':' + client_secret byteHead = head.encode("ascii") encoded_data = base64.b64encode(byteHead) #tokenreq.add_header('Authorization', 'Basic ' + base64.b64encode(client_id + b':' + client_secret)) tokenreq.add_header('Authorization', 'Basic ' + str(encoded_data)) tokenreq.add_header('Content-Type', 'application/x-www-form-urlencoded') #Fire off the request try: tokenresponse = urlopen(tokenreq) #See what we got back. If it's this part of the code it was OK FullResponse = tokenresponse.read() #Use JSON to extract tokens ResponseJSON = json.loads(FullResponse) print(ResponseJSON) #Read the access token as a string NewAccessToken = str(ResponseJSON['access_token']) NewRefreshToken = str(ResponseJSON['refresh_token']) #print ResponseJSON['expires_at'] #Write the access token to the ini file WriteTokens(NewAccessToken, NewRefreshToken) print_json('status', 'Tokens refreshed') except URLError as err: print_json('error', 'Error getting new access token') # print_json('error', err.code, json.loads(err.read())) sys.exit(1)
} # send POST request. Facebook and VK also ok with GET, but google only POST resp = urllib2.urlopen(ACCESS_TOKEN_URL, data=urlencode(access_token_params)) assert resp.code == 200 resp_content = json.loads(resp.read()) access_token = resp_content['access_token'] expires_in = resp_content['expires_in'] refresh_token =resp_content['refresh_token'] user_id =resp_content['userid'] print "access_token", access_token print "expires_in", expires_in print "refresh_token", refresh_token print "user_id", user_id WriteTokens(access_token,refresh_token) #################################### # STEP 4: request to server resource #################################### api_params = { 'access_token': access_token, } url = "&".join([API_RESOURCE_URL, urlencode(api_params)]) print url resp = urllib2.urlopen(url) assert resp.code == 200 resp_content = json.loads(resp.read()) print resp_content['body']['devices'][0]['type'] #print "Email:", email
secret = input("Enter client secret:\n") elif responce == "N": print( "Try again giving arguments: client id and client secret.") sys.exit(1) else: print("Invalid input.") sys.exit(1) else: print("Invalid input.") sys.exit(1) elif (len(sys.argv) == 3): id, secret = sys.argv[1:] else: print("Try again giving arguments: client id and client secret.") sys.exit(1) server = OAuth2Server(id, secret) server.browser_authorize() acc_tok = server.oauth.token['access_token'] ref_tok = server.oauth.token['refresh_token'] print('FULL RESULTS = %s' % server.oauth.token) print('ACCESS_TOKEN = %s' % acc_tok) print('REFRESH_TOKEN = %s' % ref_tok) WriteTokens(acc_tok, ref_tok)
print("Try again giving arguments: client id and client secret.") sys.exit(1) else: print("Invalid input.") sys.exit(1) else: print("Invalid input.") sys.exit(1) elif (len(sys.argv) == 3): id, secret = sys.argv[1:] else: print("Try again giving arguments: client id and client secret.") sys.exit(1) server = OAuth2Server(id,secret) server.browser_authorize() print(server.oauth.session) acc_tok = server.oauth.session.token['access_token'] ref_tok = server.oauth.session.token['refresh_token'] expires_at = server.oauth.session.token['expires_at'] print('FULL RESULTS = %s' % server.oauth.session.token) print('ACCESS_TOKEN = %s' % acc_tok) print('REFRESH_TOKEN = %s' % ref_tok) WriteTokens(acc_tok,ref_tok,expires_at)
def WriteTokenWrapper(token): print_data(token,0,1) acc_tok = token['access_token'] ref_tok = token['refresh_token'] expires_at = token['expires_at'] WriteTokens(acc_tok,ref_tok,expires_at)