Python wrapper functions for Outreach APIs, tested with Python 3.8 - 3.9.
This python client wrapper helps connects outreach API by authentication flow, any request use two distinct sets of credentials. The API key and secret identify the requester.
- Installation
- Dependent libraries The following dependent libraries were installed.
pip install requests
- Install from pypi using pip
pip install python-outreach
- Clone this repository, and then install using setup.py. Recommend using a virtualenv:
> virtualenv -p python3 venv > source venv/bin/activate > python setup.py install OR > cd .../python-outreach > pip install .
- Set the environment variables,
refresh_token
,redirect_uri
,client_id
, andclient_secret
are the credentials need to set for outreach client. More details for Authentication is hereexport client_id=<Application_Identifier> export client_secret=<Application_Secret> export redirect_uri=<Application_Redirect_URI> export refresh_token=<Refresh_Token>
- To work with the API client, we start with the
OutreachClient
class:connect_config = { 'user_agent': '', 'client_id': environ['OUTREACH_CLIENT_ID'], 'client_secret': environ['OUTREACH_CLIENT_SECRET'], 'redirect_uri': environ['OUTREACH_REDIRECT_URI'], 'refresh_token': environ['OUTREACH_REFRESH_TOKEN'], 'quota_limit': 9999 } or_client = OutreachClient(connect_config)
- To Fetch prospects by email address or prospect id use
or_client.get(path=f'prospects?filter[emails]={:email}') # or or_client.get(path=f'prospects/{:id}')
- To Create new prospects or update existing
# To Create New or_client.post(path=f'prospects', json={ "data": { "type": "prospect", "attributes": {:Prospect_rec_attributes key:value} } }) # For update or_client.update(path=f'prospects/{prospect_id}', json={ "data": { "type": "prospect", "id": int(prospect_id), "attributes": prospect_rec } })
To request a new feature in this package, please open a new issue on the Github repo. To report problems, please open a new issue on the Github repo.
Pull requests are welcomed! All pull requests must have the following:
- OK global score from pylint using PEP8 standards
- This one is a bit loose for now given that the old code is still a mess; once the renovation is complete, we will implement a minimum passing pylint score
- Passing unit tests (nosetests) that cover the included use cases and pass the current tox config