salesforce-cdp-connector


Namesalesforce-cdp-connector JSON
Version 1.0.15 PyPI version JSON
download
home_pagehttps://github.com/forcedotcom/salesforce-cdp-connector
SummaryPython Connector for Salesforce CDP
upload_time2024-05-14 03:46:26
maintainerNone
docs_urlNone
authorQuery Service
requires_python>=3.8
licenseBSD-3-Clause
keywords cdp salesforce dbapi
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # salesforce-cdp-connector

A readonly CDP client for Python. This can be used to execute queries against CDP and load the data into python.

## Usage

### Installation

Install the package from Pypi using the command

```
pip install salesforce-cdp-connector
```

### Quick Start

We have to create an instance of the SalesforceCDPConnection to connect to CDP.

The object can be created as follows:

**Using JWT**
```
from salesforcecdpconnector.connection import SalesforceCDPConnection

fd = open('./salesforce.key');
your_key = fd.read()

conn = SalesforceCDPConnection(login_url, 
       client_id='<client_id>', 
       username='<username>', 
       private_key=your_key
   )
```

**Using Username and Password**
```
from salesforcecdpconnector.connection import SalesforceCDPConnection
conn = SalesforceCDPConnection(
        'login_url', 
        'user_name', 
        'password', 
        'client_id', 
        'client_secret'
    )
```

**Using OAuth Tokens**
```
from salesforcecdpconnector.connection import SalesforceCDPConnection
conn = SalesforceCDPConnection(login_url, 
       client_id='<client_id>', 
       client_secret='<client_secret>', 
       core_token='<core token>'
       refresh_token='<refresh_token>'
   )
```

Once the connection object is created the queries can be executed using cursor as follows

```
cur = conn.cursor()
cur.execute('<query>')
results = cur.fetchall()
```

The query results can also be directly extracted as a pandas dataframe

```
dataframe = conn.get_pandas_dataframe('<query>')
```

### Creating a connected App

1. Log in to salesforce as an admin. In the top right corner, click on the gear icon and go to step
2. In the left hand side, under Platform Tools, go to Apps > App Manager
3. Click on New Connected App
4. Fill in the required Basic Information fields.
5. Under API (Enable OAuth Settings)
    1. Click on the checkbox to Enable OAuth Settings.
    2. Provide a callback URL.
    3. In the Selected OAuth Scopes, make sure that refresh_token, api, cdp_query_api, cdp_profile_api is selected.
    4. Click on Save to save the connected app
6. From the page that opens up, click on the Manage Consumer Details to find your client id and client secret

### Fetching Refresh Token

1. From the connected app, note down the below details:
   * Client Id
   * Client Secret
   * Callback URL
2. Obtain the code
   1. From browser, go to the below url.
   ```
   <LOGIN_URL>/services/oauth2/authorize?response_type=code&client_id=<client_id>&redirect_uri=<callback_url>
   ```
   2. This will redirect you to the callback url. The redirected url will be of the form
   ```<callback url>?code=<CODE>```
   3. Extract the CODE from the address bar to be used in next step. Check the network tab of browser if the addressbar doesn't show this.
   
3. Get core and refresh tokens
   1. Make a post call using curl or postman to the below url using the code retrieved in previous step.
   ```
   <LOGIN_URL>/services/oauth2/token?code=<CODE>&grant_type=authorization_code&client_id=<clientId>&client_secret=<clientSecret>&redirect_uri=<callback_uri>
   ```
   2. The response to the above post call will be a json with access_token and refresh_token



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/forcedotcom/salesforce-cdp-connector",
    "name": "salesforce-cdp-connector",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "cdp, salesforce, dbapi",
    "author": "Query Service",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/79/c6/ce281ee870ea1cb2fa26b166f12c913c6746c4874acbebb0eca922ab4845/salesforce-cdp-connector-1.0.15.tar.gz",
    "platform": null,
    "description": "# salesforce-cdp-connector\n\nA readonly CDP client for Python. This can be used to execute queries against CDP and load the data into python.\n\n## Usage\n\n### Installation\n\nInstall the package from Pypi using the command\n\n```\npip install salesforce-cdp-connector\n```\n\n### Quick Start\n\nWe have to create an instance of the SalesforceCDPConnection to connect to CDP.\n\nThe object can be created as follows:\n\n**Using JWT**\n```\nfrom salesforcecdpconnector.connection import SalesforceCDPConnection\n\nfd = open('./salesforce.key');\nyour_key = fd.read()\n\nconn = SalesforceCDPConnection(login_url, \n       client_id='<client_id>', \n       username='<username>', \n       private_key=your_key\n   )\n```\n\n**Using Username and Password**\n```\nfrom salesforcecdpconnector.connection import SalesforceCDPConnection\nconn = SalesforceCDPConnection(\n        'login_url', \n        'user_name', \n        'password', \n        'client_id', \n        'client_secret'\n    )\n```\n\n**Using OAuth Tokens**\n```\nfrom salesforcecdpconnector.connection import SalesforceCDPConnection\nconn = SalesforceCDPConnection(login_url, \n       client_id='<client_id>', \n       client_secret='<client_secret>', \n       core_token='<core token>'\n       refresh_token='<refresh_token>'\n   )\n```\n\nOnce the connection object is created the queries can be executed using cursor as follows\n\n```\ncur = conn.cursor()\ncur.execute('<query>')\nresults = cur.fetchall()\n```\n\nThe query results can also be directly extracted as a pandas dataframe\n\n```\ndataframe = conn.get_pandas_dataframe('<query>')\n```\n\n### Creating a connected App\n\n1. Log in to salesforce as an admin. In the top right corner, click on the gear icon and go to step\n2. In the left hand side, under Platform Tools, go to Apps > App Manager\n3. Click on New Connected App\n4. Fill in the required Basic Information fields.\n5. Under API (Enable OAuth Settings)\n    1. Click on the checkbox to Enable OAuth Settings.\n    2. Provide a callback URL.\n    3. In the Selected OAuth Scopes, make sure that refresh_token, api, cdp_query_api, cdp_profile_api is selected.\n    4. Click on Save to save the connected app\n6. From the page that opens up, click on the Manage Consumer Details to find your client id and client secret\n\n### Fetching Refresh Token\n\n1. From the connected app, note down the below details:\n   * Client Id\n   * Client Secret\n   * Callback URL\n2. Obtain the code\n   1. From browser, go to the below url.\n   ```\n   <LOGIN_URL>/services/oauth2/authorize?response_type=code&client_id=<client_id>&redirect_uri=<callback_url>\n   ```\n   2. This will redirect you to the callback url. The redirected url will be of the form\n   ```<callback url>?code=<CODE>```\n   3. Extract the CODE from the address bar to be used in next step. Check the network tab of browser if the addressbar doesn't show this.\n   \n3. Get core and refresh tokens\n   1. Make a post call using curl or postman to the below url using the code retrieved in previous step.\n   ```\n   <LOGIN_URL>/services/oauth2/token?code=<CODE>&grant_type=authorization_code&client_id=<clientId>&client_secret=<clientSecret>&redirect_uri=<callback_uri>\n   ```\n   2. The response to the above post call will be a json with access_token and refresh_token\n\n\n",
    "bugtrack_url": null,
    "license": "BSD-3-Clause",
    "summary": "Python Connector for Salesforce CDP",
    "version": "1.0.15",
    "project_urls": {
        "Homepage": "https://github.com/forcedotcom/salesforce-cdp-connector"
    },
    "split_keywords": [
        "cdp",
        " salesforce",
        " dbapi"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "549c6faa6fe8665e5913ebde0a627890d6aff33a603590dd81522bbf745cb8b1",
                "md5": "d27c9aa34ab2c3406b76e02692fd6e9b",
                "sha256": "c03054c5b43145d7ed10084ce1f5551ef862e8a31a5b5b81f2630cb69dec0b79"
            },
            "downloads": -1,
            "filename": "salesforce_cdp_connector-1.0.15-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "d27c9aa34ab2c3406b76e02692fd6e9b",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 18495,
            "upload_time": "2024-05-14T03:46:25",
            "upload_time_iso_8601": "2024-05-14T03:46:25.241114Z",
            "url": "https://files.pythonhosted.org/packages/54/9c/6faa6fe8665e5913ebde0a627890d6aff33a603590dd81522bbf745cb8b1/salesforce_cdp_connector-1.0.15-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "79c6ce281ee870ea1cb2fa26b166f12c913c6746c4874acbebb0eca922ab4845",
                "md5": "8858cfb22ca7d6ba8ec49c94ea52f101",
                "sha256": "631bd5e05c320b14932030aec303db93e8646e375d1202cf344a3ec529a3a896"
            },
            "downloads": -1,
            "filename": "salesforce-cdp-connector-1.0.15.tar.gz",
            "has_sig": false,
            "md5_digest": "8858cfb22ca7d6ba8ec49c94ea52f101",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 13421,
            "upload_time": "2024-05-14T03:46:26",
            "upload_time_iso_8601": "2024-05-14T03:46:26.861090Z",
            "url": "https://files.pythonhosted.org/packages/79/c6/ce281ee870ea1cb2fa26b166f12c913c6746c4874acbebb0eca922ab4845/salesforce-cdp-connector-1.0.15.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-05-14 03:46:26",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "forcedotcom",
    "github_project": "salesforce-cdp-connector",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "salesforce-cdp-connector"
}
        
Elapsed time: 1.26501s