Skip to main content

API wrapper for Salesforce written in Python

Project description

salesforce-python

salesforce-python is an API wrapper for Salesforce written in Python

Installing

pip install salesforce-python

Usage

from salesforce.client import Client

client = Client('CLIENT_KEY', 'CLIENT_SECRET', 'https://na50.salesforce.com/', 'v41.0') # Host must have trailing slash

Get authorization url

url = client.authorization_url('REDIRECT_URI')

Exchange the code for a token

token = client.exchange_code('REDIRECT_URI', 'CODE')

Set the token

client.set_access_token('TOKEN')

Refresh the token

new_token = client.refresh_token()

Get user information

user = client.get_user_info()

Get API versions

user = client.get_versions()

Get all resources by the version specified in the client instantiation.

versions = client.get_versions()

Get all objects described

metadata = client.get_describe_global()

Get an object

object = client.get_sobject('Lead)

Create an object

data = {'LastName': 'Doe', 'IsConverted': 'False', 'Status': 'Open - Not Contacted', 'IsUnreadByOwner': 'False', 'Company': 'NA', 'FirstName': 'John'}
response = client.create_sobject('Lead', data)

Get an object described

metadata = client.get_sobject_describe('Lead')

Webhooks

In order to create a webhook in Salesforce we need to create an APEX Class, Remote Site and Apex Trigger.

Create the APEX Class

In this example we are going to read the apex_class.txt file in the files folder included in this repository:

with open(os.path.join('/path/to/apex_class.txt'), 'r') as file:
    body = file.read()

response = client.create_apex_class('WebhookClass', body)

Create the Remote Site

URL is a string with the domain of your site:

url = 'https://mywebsite.com/'
response = client.create_remote_site('RemoteSiteSetting', url)

Create the APEX Trigger

To create the Trigger, we are going to read the apex_trigger.txt file and replace some values.

with open(os.path.join('/path/to/apex_trigger.txt'), 'r') as file:
    body = file.read()

sobject = 'User'
event = 'after insert'
url = 'https://mywebsite.com/notification_url/' #This is the domain url + your webhook path

body = body.replace('{sobject}', sobject)
body = body.replace('{events}', event)
body = body.replace('{url}', "'" + url + "'")

response = client.create_apex_trigger('WebhookTrigger', body, sobject)

That's all, you should receive notifications every time you create a new user in your Salesforce dashboard.

Requirements

  • requests

Contributing

We are always grateful for any kind of contribution including but not limited to bug reports, code enhancements, bug fixes, and even functionality suggestions.

You can report any bug you find or suggest new functionality with a new issue.

If you want to add yourself some functionality to the wrapper:

  1. Fork it ( https://github.com/GearPlug/salesforce-python )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Adds my new feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

salesforce_python-0.3.5.tar.gz (4.7 kB view details)

Uploaded Source

Built Distribution

salesforce_python-0.3.5-py3-none-any.whl (5.8 kB view details)

Uploaded Python 3

File details

Details for the file salesforce_python-0.3.5.tar.gz.

File metadata

  • Download URL: salesforce_python-0.3.5.tar.gz
  • Upload date:
  • Size: 4.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.9

File hashes

Hashes for salesforce_python-0.3.5.tar.gz
Algorithm Hash digest
SHA256 23627f3adef8f519ca13b060873c618f72b30176f457c4acd55618f0e91985cf
MD5 a160e9e71d742721c4f7b42d1b0c1a26
BLAKE2b-256 9ca453932a1cf2875aa25650bf197d8ebcbc5e787cad802bf0c68bc2e941d521

See more details on using hashes here.

File details

Details for the file salesforce_python-0.3.5-py3-none-any.whl.

File metadata

File hashes

Hashes for salesforce_python-0.3.5-py3-none-any.whl
Algorithm Hash digest
SHA256 d0be56b0194e603239c8ccd74c1b66730354e441d5a0e01afa70bb7991500ef2
MD5 36e535fb20726095f73deae1450cfb43
BLAKE2b-256 a3d92ee0796f3fc8fdc738e1843241a8302b1f8f83680e7b1b1f5a50ccd2c238

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page