python salesforce library to get salesforce data?
Asked Answered
B

5

13

Is there a library or package which we can use with python to connect to salesforce and get data?

Blanco answered 21/9, 2011 at 17:32 Comment(0)
V
18

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

Valse answered 21/9, 2011 at 17:46 Comment(3)
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 installValse
I see this - beatbox.SoapFaultError: 'INVALID_LOGIN' 'INVALID_LOGIN: Invalid username, password, security token; or user locked out.' I am using correct info thoughBlanco
T
8

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...

Tectonics answered 1/6, 2015 at 5:50 Comment(0)
F
1

This one is the best in my experience: http://code.google.com/p/salesforce-python-toolkit/

Firedrake answered 2/5, 2012 at 0:58 Comment(0)
L
1

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)
Lala answered 17/3, 2017 at 6:25 Comment(0)
T
0

Although this is not Python specific. I came across a cool tool for the command line. You could run bash commands as an option..

https://force-cli.heroku.com/

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
Thrombokinase answered 3/12, 2015 at 0:20 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.