Module connectedcar.connectedcar

Expand source code
from . import const, requester
class AuthClient(object):
    
    def __init__(self, client_id, client_secret, redirect_uri=None, scope=None):
        """ A client for accessing the Ford API

        Args:
            client_id (str): The application id, provided in the application
                dashboard
            client_secret (str): The application secret, provided in the
                application dashboard
            redirect_uri (str, optional): The URL to redirect to after the user accepts
                or declines the application's permissions.
            scope (list, optional): A list of permissions requested by the application

        """
        self.client_id = client_id
        self.client_secret = client_secret
        self.redirect_uri = redirect_uri

    def get_user_access_token(self, username, password):
        """ Exchange a username and password for a new access dictionary

        Args:
            username (str): Ford pass username
            password (str): Ford pass password

        Returns:
            Response: response containing access and refresh token

        Raises:
            SyncException
        """

        headers = {
            'Accept': '*/*',
            'Accept-Language': 'en-US',
            'Content-Type': 'application/x-www-form-urlencoded',
            'User-Agent': 'fordpass-na/353 CFNetwork/1121.2.2 Darwin/19.3.0',
            'Accept-Encoding': 'gzip, deflate, br'
        }

        data = {
            'client_id': self.client_id,
            'grant_type': 'password',
            'username': username,
            'password': password
        }

        response = requester.call('POST', const.TOKEN_URL, headers=headers, data=data).json()
        return response

    def exchange_refresh_token(self, refresh_token):
        """ Exchange a refresh token for a new access dictionary

        Args:
            refresh_token (str): A valid refresh token from a previously retrieved
                access object

        Returns:
            Response: response containing access and refresh token

        Raises:
            SyncException
        """

        headers = {
            'Accept': '*/*',
            'Accept-Language': 'en-US',
            'Content-Type': 'application/x-www-form-urlencoded',
            'User-Agent': 'fordpass-na/353 CFNetwork/1121.2.2 Darwin/19.3.0',
            'Accept-Encoding': 'gzip, deflate, br'
        }

        data = {
            'client_id': self.client_id,
            'grant_type': 'refresh_token',
            'refresh_token': refresh_token
        }

        response = requester.call('POST', const.TOKEN_URL, headers=headers, data=data).json()
        return response

Classes

class AuthClient (client_id, client_secret, redirect_uri=None, scope=None)

A client for accessing the Ford API

Args

client_id : str
The application id, provided in the application dashboard
client_secret : str
The application secret, provided in the application dashboard
redirect_uri : str, optional
The URL to redirect to after the user accepts or declines the application's permissions.
scope : list, optional
A list of permissions requested by the application
Expand source code
class AuthClient(object):
    
    def __init__(self, client_id, client_secret, redirect_uri=None, scope=None):
        """ A client for accessing the Ford API

        Args:
            client_id (str): The application id, provided in the application
                dashboard
            client_secret (str): The application secret, provided in the
                application dashboard
            redirect_uri (str, optional): The URL to redirect to after the user accepts
                or declines the application's permissions.
            scope (list, optional): A list of permissions requested by the application

        """
        self.client_id = client_id
        self.client_secret = client_secret
        self.redirect_uri = redirect_uri

    def get_user_access_token(self, username, password):
        """ Exchange a username and password for a new access dictionary

        Args:
            username (str): Ford pass username
            password (str): Ford pass password

        Returns:
            Response: response containing access and refresh token

        Raises:
            SyncException
        """

        headers = {
            'Accept': '*/*',
            'Accept-Language': 'en-US',
            'Content-Type': 'application/x-www-form-urlencoded',
            'User-Agent': 'fordpass-na/353 CFNetwork/1121.2.2 Darwin/19.3.0',
            'Accept-Encoding': 'gzip, deflate, br'
        }

        data = {
            'client_id': self.client_id,
            'grant_type': 'password',
            'username': username,
            'password': password
        }

        response = requester.call('POST', const.TOKEN_URL, headers=headers, data=data).json()
        return response

    def exchange_refresh_token(self, refresh_token):
        """ Exchange a refresh token for a new access dictionary

        Args:
            refresh_token (str): A valid refresh token from a previously retrieved
                access object

        Returns:
            Response: response containing access and refresh token

        Raises:
            SyncException
        """

        headers = {
            'Accept': '*/*',
            'Accept-Language': 'en-US',
            'Content-Type': 'application/x-www-form-urlencoded',
            'User-Agent': 'fordpass-na/353 CFNetwork/1121.2.2 Darwin/19.3.0',
            'Accept-Encoding': 'gzip, deflate, br'
        }

        data = {
            'client_id': self.client_id,
            'grant_type': 'refresh_token',
            'refresh_token': refresh_token
        }

        response = requester.call('POST', const.TOKEN_URL, headers=headers, data=data).json()
        return response

Methods

def exchange_refresh_token(self, refresh_token)

Exchange a refresh token for a new access dictionary

Args

refresh_token : str
A valid refresh token from a previously retrieved access object

Returns

Response
response containing access and refresh token

Raises

SyncException

Expand source code
def exchange_refresh_token(self, refresh_token):
    """ Exchange a refresh token for a new access dictionary

    Args:
        refresh_token (str): A valid refresh token from a previously retrieved
            access object

    Returns:
        Response: response containing access and refresh token

    Raises:
        SyncException
    """

    headers = {
        'Accept': '*/*',
        'Accept-Language': 'en-US',
        'Content-Type': 'application/x-www-form-urlencoded',
        'User-Agent': 'fordpass-na/353 CFNetwork/1121.2.2 Darwin/19.3.0',
        'Accept-Encoding': 'gzip, deflate, br'
    }

    data = {
        'client_id': self.client_id,
        'grant_type': 'refresh_token',
        'refresh_token': refresh_token
    }

    response = requester.call('POST', const.TOKEN_URL, headers=headers, data=data).json()
    return response
def get_user_access_token(self, username, password)

Exchange a username and password for a new access dictionary

Args

username : str
Ford pass username
password : str
Ford pass password

Returns

Response
response containing access and refresh token

Raises

SyncException

Expand source code
def get_user_access_token(self, username, password):
    """ Exchange a username and password for a new access dictionary

    Args:
        username (str): Ford pass username
        password (str): Ford pass password

    Returns:
        Response: response containing access and refresh token

    Raises:
        SyncException
    """

    headers = {
        'Accept': '*/*',
        'Accept-Language': 'en-US',
        'Content-Type': 'application/x-www-form-urlencoded',
        'User-Agent': 'fordpass-na/353 CFNetwork/1121.2.2 Darwin/19.3.0',
        'Accept-Encoding': 'gzip, deflate, br'
    }

    data = {
        'client_id': self.client_id,
        'grant_type': 'password',
        'username': username,
        'password': password
    }

    response = requester.call('POST', const.TOKEN_URL, headers=headers, data=data).json()
    return response