def __init__(self, **kwargs):
        throw_invalid_request_on_key_error(kwargs, "grant_type")

        self.response = {
            "code": AuthorizationCode,
            "token": Implicit,
            "password": ResourceOwnerPasswordCredentials,
            "client_credentials": ClientCredentials,
        }[kwargs["grant_type"]](**kwargs)
 def __init__(self, **kwargs):
     # response_type, client_id, redirect_uri=None, scope=None, state=None
     throw_invalid_request_on_key_error(kwargs, "client_id")
     super(Implicit, self).generate_access_token(**kwargs)