Is there a library or package which we can use with python to connect to salesforce and get data?
python salesforce library to get salesforce data?
Asked Answered
I use beatbox
Example to query for a lead by email address
import beatbox
sf_username = "Username"
sf_password = "password"
sf_api_token = "api token"
def get_lead_records_by_email(email)
sf_client = beatbox.PythonClient()
password = str("%s%s" % (sf_password, sf_api_token))
sf_client.login(sf_username, password)
lead_qry = "SELECT id, Email, FirstName, LastName, OwnerId FROM Lead WHERE Email = '%s'" % (email)
records = sf_client.query(lead_qry)
return records
To get other data look at the salesforce api docs
view other beatbox examples here
hey matto, i saw their downloads, is it only for Windows? no package for linux/mac? –
Blanco
if you have setuptools installed you can do
easy_install beatbox
, otherwise download the package from github github.com/superfell/Beatbox and run python setup.py install
–
Valse I see this - beatbox.SoapFaultError: 'INVALID_LOGIN' 'INVALID_LOGIN: Invalid username, password, security token; or user locked out.' I am using correct info though –
Blanco
There's also a package called simple_salesforce .
You can install it with:
$ pip install simple_salesforce
You can gain access to your Salesforce account with the following:
from simple_salesforce import Salesforce
sf = Salesforce(username='[email protected]', password='password', security_token='token')
The readme is helpful with regards to details...
This one is the best in my experience: http://code.google.com/p/salesforce-python-toolkit/
Here is the ready code to get anyone started. For fetching reports from SFDC.
import pandas as pd
import numpy as np
from pandas import DataFrame, Series
from simple_salesforce import Salesforce #imported salesforce
sf = Salesforce(username='[email protected]', password='enter_password', security_token = 'Salesforce_token')
salesforce token is received in email everytime you change your password.
import requests #imported requests
session = requests.Session() #starting sessions
from io import StringIO #to read web data
error_report_defined = session.get("https://na4.salesforce.com/xxxxxxxxxxxx?export=1&enc=UTF-8&xf=csv".format('xxxxxxxxxxxx'), headers=sf.headers, cookies={'sid': sf.session_id})
df_sfdc_error_report_defined = pd.DataFrame.from_csv(StringIO(error_report_defined.text))
df_sfdc_error_report_defined = df_sfdc_error_report_defined.to_csv('defined.csv', encoding = 'utf-8')
error_report = pd.read_csv('defined.csv') #your report is saved in csv format
print (error_report)
Although this is not Python specific. I came across a cool tool for the command line. You could run bash commands as an option..
Usage: force <command> [<args>]
Available commands:
login force login [-i=<instance>] [<-u=username> <-p=password>]
logout Log out from force.com
logins List force.com logins used
active Show or set the active force.com account
whoami Show information about the active account
describe Describe the object or list of available objects
sobject Manage standard & custom objects
bigobject Manage big objects
field Manage sobject fields
record Create, modify, or view records
bulk Load csv file use Bulk API
fetch Export specified artifact(s) to a local directory
import Import metadata from a local directory
export Export metadata to a local directory
query Execute a SOQL statement
apex Execute anonymous Apex code
trace Manage trace flags
log Fetch debug logs
eventlogfile List and fetch event log file
oauth Manage ConnectedApp credentials
test Run apex tests
security Displays the OLS and FLS for a give SObject
version Display current version
update Update to the latest version
push Deploy artifact from a local directory
aura force aura push -resourcepath=<filepath>
password See password status or reset password
notify Should notifications be used
limits Display current limits
help Show this help
datapipe Manage DataPipes
© 2022 - 2024 — McMap. All rights reserved.