Skip to content

Instantly share code, notes, and snippets.

@ekodasolo
Created November 20, 2020 09:07
Show Gist options
  • Save ekodasolo/887ca0dbfec0c34dad9366f45ecef176 to your computer and use it in GitHub Desktop.
Save ekodasolo/887ca0dbfec0c34dad9366f45ecef176 to your computer and use it in GitHub Desktop.
#-*- coding: utf-8 -*-
import requests
import json
# Constant Values
# Parameter Store Path
SSM_PARAM_SFDC_ENDPOINT = "/app/sfdc/endpoint/v1"
SSM_PARAM_SFDC_CLIENT_ID = "/app/sfdc/client_id/v1"
SSM_PARAM_SFDC_SECRET = "/app/sfdc/client_secret/v1"
SSM_PARAM_SFDC_USER = "/app/sfdc/username/v1"
SSM_PARAM_SFDC_PASSWORD = "/app/sfdc/password/v1"
# 3rd party modules
import boto3
ssm = boto3.client('ssm')
def get_parameter_value(parameter_name):
""" Get value from SSM Parameters Store """
response = ssm.get_parameter(
Name=parameter_name,
WithDecryption=True
)
return response['Parameter']['Value']
def get_parameters():
""" Get parameters and build Salesforce Connection parameters """
param = {
"client_id": get_parameter_value(SSM_PARAM_SFDC_CLIENT_ID),
"client_secret": get_parameter_value(SSM_PARAM_SFDC_SECRET),
"username": get_parameter_value(SSM_PARAM_SFDC_USER),
"password": get_parameter_value(SSM_PARAM_SFDC_PASSWORD),
"endpoint": get_parameter_value(SSM_PARAM_SFDC_ENDPOINT)
}
return param
def sf_login(opt):
""" Call Login API of Salesforce and dump results """
# SFDC Login Params
params = {
"grant_type": "password",
"client_id": opt["client_id"], # Consumer Key
"client_secret": opt["client_secret"], # Consumer Secret
"username": opt["username"], # The email you use to login
"password": opt["password"] # Concat your password and your security token
}
# Login Request
r = requests.post(opt["endpoint"], params=params)
# if you connect to a Sandbox, use test.salesforce.com instead
ret = r.json()
access_token = r.json().get("access_token")
instance_url = r.json().get("instance_url")
print("Access Token:", access_token)
print("Instance URL", instance_url)
print("Whole response")
print(json.dumps(ret))
def main():
print("main started")
print("get parameter from SSM")
param = get_parameters()
print(json.dumps(param))
print("Salesforce Login")
sf_login(param)
if __name__ == '__main__':
print("start app")
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment