Source code for awherepy

""" Base module for authenticating to the aWhere API. """

import base64
import requests as rq


[docs]def get_oauth_token(key, secret): """Returns an OAuth Token used to authenticate to the aWhere API if a valid key and secret are provided. API reference: https://docs.awhere.com/knowledge-base-docs/authentication/ Parameters ---------- key : str API key for a valid aWhere API application. secret : str API secret for a valid aWhere API application. Returns ------- access_token : str Access token created from the API key and secret. Example ------- >>> # Imports >>> import os >>> import awherepy as aw >>> # Get aWhere API key and secret >>> awhere_api_key = os.environ.get('AWHERE_API_KEY') >>> awhere_api_secret = os.environ.get('AWHERE_API_SECRET') >>> # Get OAuth token >>> auth_token = aw.get_oauth_token(awhere_api_key, awhere_api_secret) """ # Base64 Encode the API key/secret pair encoded_key_secret = base64.b64encode( bytes(f"{key}:{secret}", "utf-8") ).decode("ascii") # Define authorization parameters for HTTP request auth_url = "https://api.awhere.com/oauth/token" auth_headers = { "Authorization": f"Basic {encoded_key_secret}", "Content-Type": "application/x-www-form-urlencoded", } auth_body = "grant_type=client_credentials" # Request OAuth Token response = rq.post(url=auth_url, headers=auth_headers, data=auth_body) # Get access token access_token = response.json().get("access_token") # Return access token return access_token
[docs]def valid_credentials(key, secret): """Returns True if aWhere API credentials are valid, else False. Parameters ---------- key : str API key for a valid aWhere API application. secret : str API secret for a valid aWhere API application. Returns ------- valid : bool Boolean indicating True if API credentials are valid, else false. Example ------- >>> # Imports >>> import os >>> import awherepy as aw >>> # Get aWhere API key and secret >>> awhere_api_key = os.environ.get('AWHERE_API_KEY') >>> awhere_api_secret = os.environ.get('AWHERE_API_SECRET') >>> # Check validity of credentials and get OAuth token >>> if aw.valid_credentials(awhere_api_key, awhere_api_secret): ... auth_token = aw.get_oauth_token( ... awhere_api_key, awhere_api_secret ... ) """ # Get OAuth token token = get_oauth_token(key, secret) # Check for validity valid = False if token is None else True # Return valid return valid
# return False if get_oauth_token(key, secret) is None else True