Nameko extension for easy communication with Salesforce (Including Streaming API)
Project description
Nameko Salesforce
A Nameko extension with entrypoints for handling Salesforce Streaming API events and a dependency provider for easy communication with Salesforce REST API.
The Streaming API extension is based on Nameko Cometd Bayeux Client and the REST API dependency id based on Simple Salesforce.
Quick Start
Install from PyPI:
pip install nameko-salesforce
Create a service which handles Salesforce Contact objects changes and also has an RPC endpoint for creating new Contact objects in Salesforce:
# service.py
from nameko.rpc import rpc
from nameko_salesforce.streaming import handle_sobject_notification
from nameko_salesforce.api import SalesforceAPI
class Service:
name = 'some-service'
salesforce = SalesforceAPI()
@handle_sobject_notification('Contact', exclude_current_user=False)
def handle_contact_updates(
self, sobject_type, record_type, notification
):
""" Handle Salesforce contacts updates
"""
print(notification)
@rpc
def create_contact(self, last_name, email_address):
""" Create a contact in Salesforce
"""
self.salesforce.Contact.create(
{'LastName': last_name,'Email': email_address})
Create a config file with essential settings:
# config.yaml
AMQP_URI: 'pyamqp://guest:guest@localhost'
SALESFORCE:
USERNAME: ${SALESFORCE_USERNAME}
PASSWORD: ${SALESFORCE_PASSWORD}
SECURITY_TOKEN: ${SALESFORCE_SECURITY_TOKEN}
SANDBOX: False
Run the service providing your Salesforce credentials:
$ SALESFORCE_USERNAME=rocky \
SALESFORCE_PASSWORD=*** \
SALESFORCE_SECURITY_TOKEN=*** \
nameko run --config config.yaml service
Finally, open another shell and call the RPC endpoint to create a new user:
$ nameko shell --config config.yaml
In [1]: n.rpc['some-service'].create_contact('Yo', 'yo@yo.yo')
You should see a new contact created in Salesforce and your service should get a notification. In the first shell you’ll find the notification printed:
{'event': {'replayId': 1, 'type': 'created' ...
For more checkout the documentation.
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
Built Distribution
File details
Details for the file nameko-salesforce-1.2.0.tar.gz
.
File metadata
- Download URL: nameko-salesforce-1.2.0.tar.gz
- Upload date:
- Size: 19.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.5.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 48d13a4a54bc32858720ad3d5604c2256fe08b0e2021decaaf120f79f87f1252 |
|
MD5 | f0d8f8e598be9f70db1313c8eb9543d7 |
|
BLAKE2b-256 | f60178c7823d174ac4a323a13cb159a114c4e2abd92adaf3ee2f90a303a9ed46 |
File details
Details for the file nameko_salesforce-1.2.0-py3-none-any.whl
.
File metadata
- Download URL: nameko_salesforce-1.2.0-py3-none-any.whl
- Upload date:
- Size: 24.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.5.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | dfb1cc3a518a5c7ac8d36f2b9444cff4327585b1eb0d0122d5dc64ea03af6d15 |
|
MD5 | 4f2d79318aa10b094a00c8474cd28455 |
|
BLAKE2b-256 | c82a99403e3bfa7cb296e1abaace699beea3cc14d3b6598d6b802e4c676c3523 |