from requests_oauthlib import OAuth2Session from oauthlib.oauth2 import BackendApplicationClient def get_token(client_id, client_secret, token_url, username, password, audience, scope): client = BackendApplicationClient(client_id=client_id) oauth = OAuth2Session(client=client) token = oauth.fetch_token( token_url=token_url, username=username, password=password, client_id=client_id, client_secret=client_secret, audience=audience, scope=scope ) return token def api_client(base_url, token): client = OAuth2Session(token=token) response = client.get(base_url) return response.content client_id = '' client_secret = '' token_url = '' username = '' password = '' audience = '' scope = ['scope1', 'scope2'] # Fetch token token = get_token(client_id, client_secret, token_url, username, password, audience, scope) # Now we can make API calls api_response = api_client('https://api.example.com/resource', token) print(api_response)