Buy Me a Coffee? Your support is much appreciated!
Source Code
import requests # pip install requests
from consumer_details import CONSUMER_KEY, CONSUMER_SECRET, USERNAME, PASSWORD
import pandas as pd # pip install pandas
# Generate Access Token
def generate_token():
payload = {
'grant_type': 'password',
'client_id': CONSUMER_KEY,
'client_secret': CONSUMER_SECRET,
'username': USERNAME,
'password': PASSWORD
}
oauth_endpoint = '/services/oauth2/token'
response = requests.post(DOMAIN + oauth_endpoint, data=payload)
return response.json()
DOMAIN = '<salesforce domain>'
access_token = generate_token()['access_token']
headers = {
'Authorization': 'Bearer ' + access_token
}
# Example 1. Run a SOQL query
def query(soql_query):
try:
# soql_query = 'SELECT name FROM opportunity'
endpoint = '/services/data/v56.0/query/'
records = []
response = requests.get(DOMAIN + endpoint, headers=headers, params={'q': soql_query})
total_size = response.json()['totalSize']
records.extend(response.json()['records'])
while not response.json()['done']:
response = requests.get(DOMAIN + endpoint + response.json()['nextRecordsUrl'], headers=headers)
records.extend(response.json()['records'])
return {'record_size': total_size, 'records': records}
except Exception as e:
print(e)
return
records = query('SELECT id, name, type FROM opportunity')
print(records)
records['record_size']
df = pd.DataFrame(records['records'])
print(df)
# Example 2. Retrieve an object's metadata
def retrieve_object_metadata(object_api_name):
response = requests.get(DOMAIN + f'/services/data/v56.0/sobjects/{object_api_name}/describe', headers=headers)
return response.json()
object_id = 'account'
object_metadata = retrieve_object_metadata(object_id)
print(object_metadata)
df_metadata = pd.DataFrame(object_metadata['fields'])
df_metadata.to_csv('account metadata information.csv', index=False)