2023-08-04 21:30:04 +00:00
2023-08-04 21:30:04 +00:00
2023-05-02 08:34:09 -04:00
2023-08-04 21:30:04 +00:00
2023-05-02 09:06:44 -04:00
2023-05-02 08:40:12 -04:00

SuccessFactors + Python

Authenticate with and use the SAP SuccessFactors API with Python.

Authentcation

How to use

  1. Create an OAuth application in SuccessFactors.

  2. Download the private key and copy the Client ID.

  3. Clone this repo and copy sf_auth.py and sf_saml_template.xml into your Python project directory.

  4. Import sf_auth into your project.

  5. Install all the requirements listed in requirements.txt in this repo.

  6. Call the sf_auth.auth() function in your Python project. You'll need to pass the following parameters:

    • sf_url: Base API url of your SuccessFactors instance, e.g. "https://api55.sapsf.eu".
    • sf_company_id: SuccessFactors company ID.
    • sf_oauth_client_id: The Client ID for the OAuth application you created earlier.
    • sf_admin_user: An admin user in SuccessFactors that has access to the OAuth application.
    • sf_saml_private_key: Path to the private key file you downloaded when you created the OAuth application.
    • template_file: Path to the template file from this repo.

    Example:

    #!/usr/bin/env python
    
    import requests
    import sf_auth
    
    sf_url = 'https://your.base.url.com'
    sf_company_id = 'your-company-id'
    sf_oauth_client_id = 'OAUTH-CLIENT-ID'
    sf_admin_user = 'your_admin_user'
    sf_saml_private_key = 'your_app_private_key.pem'
    template_file = 'sf_saml_template.xml'
    
    token = sf_auth.auth(sf_url, sf_company_id, sf_oauth_client_id, sf_admin_user, sf_saml_private_key, sf_saml_template)
    
    headers = {
        "Accept: application/json",
        f"Authorization: {token}"
    }
    
    request = requests.get(f"{sf_url}/User", headers=headers)
    
    print(request.json())
    

Using as an AWS Lambda function w/ API Gateway

Coming soon...

Description
Authenticate with and use the SAP SuccessFactors API with Python.
Readme Apache-2.0 138 KiB
Languages
Python 100%