Skip to main content

Nameko extension for easy communication with Salesforce (Including Streaming API)

Project description

https://travis-ci.org/Overseas-Student-Living/nameko-salesforce.svg?branch=extract-from-internal-salesforce-lib

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

nameko-salesforce-1.2.0.tar.gz (19.8 kB view details)

Uploaded Source

Built Distribution

nameko_salesforce-1.2.0-py3-none-any.whl (24.9 kB view details)

Uploaded Python 3

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

Hashes for nameko-salesforce-1.2.0.tar.gz
Algorithm Hash digest
SHA256 48d13a4a54bc32858720ad3d5604c2256fe08b0e2021decaaf120f79f87f1252
MD5 f0d8f8e598be9f70db1313c8eb9543d7
BLAKE2b-256 f60178c7823d174ac4a323a13cb159a114c4e2abd92adaf3ee2f90a303a9ed46

See more details on using hashes here.

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

Hashes for nameko_salesforce-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 dfb1cc3a518a5c7ac8d36f2b9444cff4327585b1eb0d0122d5dc64ea03af6d15
MD5 4f2d79318aa10b094a00c8474cd28455
BLAKE2b-256 c82a99403e3bfa7cb296e1abaace699beea3cc14d3b6598d6b802e4c676c3523

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