From cc51d6462cf343106a96c3b946fc3701250af660 Mon Sep 17 00:00:00 2001 From: Ray Lyon Date: Tue, 2 May 2023 09:06:44 -0400 Subject: [PATCH] basic instructions --- README.md | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/README.md b/README.md index 8aa8a0c..4a1ad18 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,49 @@ # 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: + ``` python + #!/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... \ No newline at end of file