Sep-20-2021, 02:39 AM
Hi, I am new to python programming and trying to make a RESTful api call and retrieve json payload from a GET method. I am using the below code but I get error and not sure how to proceed from here.
import sys import requests import json import logging import time logging.captureWarnings(True) api_url = "https://webapi.com/api/v1/data" def get_new_token(): acc_token_url = "https://webapi.com/connect/accesstoken" client_id = 'client' client_secret = 'secret' token_req_payload = {'grant_type': 'client_credentials'} token_response = requests.post(acc_token_url , data = token_req_payload, verify = False, allow_redirects = False, auth = (client_id, client_secret)) if token_response.status_code != 200: print("Failed to obtain token from OAuth2 server", file = sys.stderr) sys.exit(1) print("Successfuly obtained a new token from OAuth2 server") tokens = json.loads(token_response.text) return tokens['access_token'] token = get_new_token() while True: api_call_headers = {'Authorization': 'Bearer ' + token} api_call_response = requests.get(api_url, headers = api_call_headers, verify = False) if api_call_response.status_code == 401: token = get_new_token() else: print(api_call_response.text)
Error:Traceback (most recent call last):
NameError: name 'token_response' is not defined