diff options
Diffstat (limited to 'python-hubspot-api-client.spec')
-rw-r--r-- | python-hubspot-api-client.spec | 882 |
1 files changed, 882 insertions, 0 deletions
diff --git a/python-hubspot-api-client.spec b/python-hubspot-api-client.spec new file mode 100644 index 0000000..ffdfbe4 --- /dev/null +++ b/python-hubspot-api-client.spec @@ -0,0 +1,882 @@ +%global _empty_manifest_terminate_build 0 +Name: python-hubspot-api-client +Version: 7.5.0 +Release: 1 +Summary: HubSpot API client +License: Apache-2.0 +URL: https://github.com/HubSpot/hubspot-api-python +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/70/75/93c269d75dda5fa690594e7e9ee380926c5643364a050824cd03e42e344c/hubspot-api-client-7.5.0.tar.gz +BuildArch: noarch + +Requires: python3-urllib3 +Requires: python3-six +Requires: python3-certifi +Requires: python3-dateutil +Requires: python3-pytest +Requires: python3-black + +%description +# hubspot-api-python + +Python [HubSpot API](https://developers.hubspot.com/docs/api/overview) v3 SDK(Client) files and sample apps + +Sample Applications can be found in [Sample apps](https://github.com/HubSpot/sample-apps-list) + +## Documentation + +See the [API docs](https://developers.hubspot.com/docs/api/overview). + +## Installation + +If you just want to use the package, run: + +```bash +pip install --upgrade hubspot-api-client +``` + +### Requirements + +Make sure you have [Python 3.5+](https://docs.python.org/3/) and [pip](https://pypi.org/project/pip/) installed. + + +## Quickstart + + +### Configuring HubSpot client + +```python +from hubspot import HubSpot + +api_client = HubSpot(access_token='your_access_token') + +# or set your access token later +api_client = HubSpot() +api_client.access_token = 'your_access_token' +``` + +You'll need to create a [private app](https://developers.hubspot.com/docs/api/private-apps) to get your access token or you can obtain OAuth2 access token. + +#### Hapikey support: + +Please, note that hapikey is no longer supported after v5.1.0. You can get more info about hapikey sunset [here](https://developers.hubspot.com/changelog/upcoming-api-key-sunset). Also, plese, visit a [migration guide](https://developers.hubspot.com/docs/api/migrate-an-api-key-integration-to-a-private-app) if you need help with a migration process. + +### OAuth API + +#### Obtain OAuth2 access token: + +```python +from hubspot.auth.oauth import ApiException + +try: + tokens = api_client.auth.oauth.tokens_api.create_token( + grant_type="authorization_code", + redirect_uri='http://localhost', + client_id='client_id', + client_secret='client_secret', + code='code' + ) +except ApiException as e: + print("Exception when calling create_token method: %s\n" % e) +``` + +### CRM API + + +#### Create contact: + +```python +from hubspot.crm.contacts import SimplePublicObjectInput +from hubspot.crm.contacts.exceptions import ApiException + +try: + simple_public_object_input = SimplePublicObjectInput( + properties={"email": "email@example.com"} + ) + api_response = api_client.crm.contacts.basic_api.create( + simple_public_object_input=simple_public_object_input + ) +except ApiException as e: + print("Exception when creating contact: %s\n" % e) +``` + +#### Get contact by id: + +```python +from hubspot.crm.contacts import ApiException + +try: + contact_fetched = api_client.crm.contacts.basic_api.get_by_id('contact_id') +except ApiException as e: + print("Exception when requesting contact by id: %s\n" % e) +``` + +#### Get custom objects page: + +```python +from hubspot.crm.objects import ApiException + +try: + my_custom_objects_page = api_client.crm.objects.basic_api.get_page(object_type="my_custom_object_type") +except ApiException as e: + print("Exception when requesting custom objects: %s\n" % e) +``` + +#### Get all: + +`get_all` method is available for all objects (Companies, Contacts, Deals and etc). + +```python +all_contacts = api_client.crm.contacts.get_all() +``` + +Please note that pagination is used under the hood to get all results. + +## Search: + +`do_search` method is available for all objects (Companies, Contacts, Deals and etc). + +### Example Search by date: +```python +import hubspot + +from dateutil import parser +from pprint import pprint +from hubspot.crm.contacts import PublicObjectSearchRequest, ApiException + +api_client = hubspot.Client.create(access_token="YOUR_ACCESS_TOKEN") + +# timestamp in milliseconds +date = str(int(parser.isoparse("XXXX-XX-XXTXX:XX:XX.XXXZ").timestamp() * 1000)) +public_object_search_request = PublicObjectSearchRequest( + filter_groups=[ + { + "filters": [ + { + "value": date, + "propertyName": "lastmodifieddate", + "operator": "EQ" + } + ] + } + ], limit=10 +) +try: + api_response = api_client.crm.contacts.search_api.do_search(public_object_search_request=public_object_search_request) + pprint(api_response) +except ApiException as e: + print("Exception when calling search_api->do_search: %s\n" % e) + +``` + +### CMS API + +#### Get audit logs: + +```python +from hubspot.cms.audit_logs import ApiException + +try: + audit_logs_page = api_client.cms.audit_logs.default_api.get_page() +except ApiException as e: + print("Exception when calling cards_api->create: %s\n" % e) +``` + +### Using utils + +#### Get OAuth url: + +```python +from hubspot.utils.oauth import get_auth_url + +auth_url = get_auth_url( + scopes=('contacts',), + client_id='client_id', + redirect_uri='http://localhost' +) +``` + +#### Validate HubSpot request signature + +[Example](./sample-apps/webhooks-app/src/routes/webhooks.py) of usage from [Webhooks Sample App](./sample-apps/webhooks-app): + +```python +import os +from flask import request +from hubspot.utils.webhooks import validate_signature +from hubspot.exceptions import InvalidSignatureError + +try: + validate_signature( + signature=request.headers["X-HubSpot-Signature"], + signature_version=request.headers["X-HubSpot-Signature-Version"], + http_uri=request.base_url, + request_body=request.data.decode("utf-8"), + client_secret=os.getenv("HUBSPOT_CLIENT_SECRET"), + ) +except InvalidSignatureError: + print("Request signature is not valid") + +``` + +### Retry middleware + +You can pass an instance of [urllib3.util.retry.Retry](https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html) class to configure http client retries. +With internal error retry middleware: + +```python +from hubspot import HubSpot +from urllib3.util.retry import Retry + +retry = Retry( + total=3, + backoff_factor=0.3, + status_forcelist=(500, 502, 504), +) +api_client = HubSpot(retry=retry) +``` +Or with rate limit retry middleware: + +```python +from hubspot import HubSpot +from urllib3.util.retry import Retry + +retry = Retry( + total=5, + status_forcelist=(429,), +) +api_client = HubSpot(retry=retry) +``` + +### Convert response object to dict + +`to_dict` method is available for most response objects + +```python +contacts = api_client.crm.contacts.basic_api.get_page() +for contact in contacts: + print(contact.to_dict()) +``` + +## Sample Apps + +Please, take a look at our [Sample apps](https://github.com/HubSpot/sample-apps-list) + +## Contributing + +Install the package locally: + +``` +pip install -e . +``` + +Set up the development virtualenv: + +``` +make +``` + +Run tests: +``` +make test +``` + +Run [Black](https://github.com/psf/black) for code formatting: +``` +make fmt +``` + + +%package -n python3-hubspot-api-client +Summary: HubSpot API client +Provides: python-hubspot-api-client +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-hubspot-api-client +# hubspot-api-python + +Python [HubSpot API](https://developers.hubspot.com/docs/api/overview) v3 SDK(Client) files and sample apps + +Sample Applications can be found in [Sample apps](https://github.com/HubSpot/sample-apps-list) + +## Documentation + +See the [API docs](https://developers.hubspot.com/docs/api/overview). + +## Installation + +If you just want to use the package, run: + +```bash +pip install --upgrade hubspot-api-client +``` + +### Requirements + +Make sure you have [Python 3.5+](https://docs.python.org/3/) and [pip](https://pypi.org/project/pip/) installed. + + +## Quickstart + + +### Configuring HubSpot client + +```python +from hubspot import HubSpot + +api_client = HubSpot(access_token='your_access_token') + +# or set your access token later +api_client = HubSpot() +api_client.access_token = 'your_access_token' +``` + +You'll need to create a [private app](https://developers.hubspot.com/docs/api/private-apps) to get your access token or you can obtain OAuth2 access token. + +#### Hapikey support: + +Please, note that hapikey is no longer supported after v5.1.0. You can get more info about hapikey sunset [here](https://developers.hubspot.com/changelog/upcoming-api-key-sunset). Also, plese, visit a [migration guide](https://developers.hubspot.com/docs/api/migrate-an-api-key-integration-to-a-private-app) if you need help with a migration process. + +### OAuth API + +#### Obtain OAuth2 access token: + +```python +from hubspot.auth.oauth import ApiException + +try: + tokens = api_client.auth.oauth.tokens_api.create_token( + grant_type="authorization_code", + redirect_uri='http://localhost', + client_id='client_id', + client_secret='client_secret', + code='code' + ) +except ApiException as e: + print("Exception when calling create_token method: %s\n" % e) +``` + +### CRM API + + +#### Create contact: + +```python +from hubspot.crm.contacts import SimplePublicObjectInput +from hubspot.crm.contacts.exceptions import ApiException + +try: + simple_public_object_input = SimplePublicObjectInput( + properties={"email": "email@example.com"} + ) + api_response = api_client.crm.contacts.basic_api.create( + simple_public_object_input=simple_public_object_input + ) +except ApiException as e: + print("Exception when creating contact: %s\n" % e) +``` + +#### Get contact by id: + +```python +from hubspot.crm.contacts import ApiException + +try: + contact_fetched = api_client.crm.contacts.basic_api.get_by_id('contact_id') +except ApiException as e: + print("Exception when requesting contact by id: %s\n" % e) +``` + +#### Get custom objects page: + +```python +from hubspot.crm.objects import ApiException + +try: + my_custom_objects_page = api_client.crm.objects.basic_api.get_page(object_type="my_custom_object_type") +except ApiException as e: + print("Exception when requesting custom objects: %s\n" % e) +``` + +#### Get all: + +`get_all` method is available for all objects (Companies, Contacts, Deals and etc). + +```python +all_contacts = api_client.crm.contacts.get_all() +``` + +Please note that pagination is used under the hood to get all results. + +## Search: + +`do_search` method is available for all objects (Companies, Contacts, Deals and etc). + +### Example Search by date: +```python +import hubspot + +from dateutil import parser +from pprint import pprint +from hubspot.crm.contacts import PublicObjectSearchRequest, ApiException + +api_client = hubspot.Client.create(access_token="YOUR_ACCESS_TOKEN") + +# timestamp in milliseconds +date = str(int(parser.isoparse("XXXX-XX-XXTXX:XX:XX.XXXZ").timestamp() * 1000)) +public_object_search_request = PublicObjectSearchRequest( + filter_groups=[ + { + "filters": [ + { + "value": date, + "propertyName": "lastmodifieddate", + "operator": "EQ" + } + ] + } + ], limit=10 +) +try: + api_response = api_client.crm.contacts.search_api.do_search(public_object_search_request=public_object_search_request) + pprint(api_response) +except ApiException as e: + print("Exception when calling search_api->do_search: %s\n" % e) + +``` + +### CMS API + +#### Get audit logs: + +```python +from hubspot.cms.audit_logs import ApiException + +try: + audit_logs_page = api_client.cms.audit_logs.default_api.get_page() +except ApiException as e: + print("Exception when calling cards_api->create: %s\n" % e) +``` + +### Using utils + +#### Get OAuth url: + +```python +from hubspot.utils.oauth import get_auth_url + +auth_url = get_auth_url( + scopes=('contacts',), + client_id='client_id', + redirect_uri='http://localhost' +) +``` + +#### Validate HubSpot request signature + +[Example](./sample-apps/webhooks-app/src/routes/webhooks.py) of usage from [Webhooks Sample App](./sample-apps/webhooks-app): + +```python +import os +from flask import request +from hubspot.utils.webhooks import validate_signature +from hubspot.exceptions import InvalidSignatureError + +try: + validate_signature( + signature=request.headers["X-HubSpot-Signature"], + signature_version=request.headers["X-HubSpot-Signature-Version"], + http_uri=request.base_url, + request_body=request.data.decode("utf-8"), + client_secret=os.getenv("HUBSPOT_CLIENT_SECRET"), + ) +except InvalidSignatureError: + print("Request signature is not valid") + +``` + +### Retry middleware + +You can pass an instance of [urllib3.util.retry.Retry](https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html) class to configure http client retries. +With internal error retry middleware: + +```python +from hubspot import HubSpot +from urllib3.util.retry import Retry + +retry = Retry( + total=3, + backoff_factor=0.3, + status_forcelist=(500, 502, 504), +) +api_client = HubSpot(retry=retry) +``` +Or with rate limit retry middleware: + +```python +from hubspot import HubSpot +from urllib3.util.retry import Retry + +retry = Retry( + total=5, + status_forcelist=(429,), +) +api_client = HubSpot(retry=retry) +``` + +### Convert response object to dict + +`to_dict` method is available for most response objects + +```python +contacts = api_client.crm.contacts.basic_api.get_page() +for contact in contacts: + print(contact.to_dict()) +``` + +## Sample Apps + +Please, take a look at our [Sample apps](https://github.com/HubSpot/sample-apps-list) + +## Contributing + +Install the package locally: + +``` +pip install -e . +``` + +Set up the development virtualenv: + +``` +make +``` + +Run tests: +``` +make test +``` + +Run [Black](https://github.com/psf/black) for code formatting: +``` +make fmt +``` + + +%package help +Summary: Development documents and examples for hubspot-api-client +Provides: python3-hubspot-api-client-doc +%description help +# hubspot-api-python + +Python [HubSpot API](https://developers.hubspot.com/docs/api/overview) v3 SDK(Client) files and sample apps + +Sample Applications can be found in [Sample apps](https://github.com/HubSpot/sample-apps-list) + +## Documentation + +See the [API docs](https://developers.hubspot.com/docs/api/overview). + +## Installation + +If you just want to use the package, run: + +```bash +pip install --upgrade hubspot-api-client +``` + +### Requirements + +Make sure you have [Python 3.5+](https://docs.python.org/3/) and [pip](https://pypi.org/project/pip/) installed. + + +## Quickstart + + +### Configuring HubSpot client + +```python +from hubspot import HubSpot + +api_client = HubSpot(access_token='your_access_token') + +# or set your access token later +api_client = HubSpot() +api_client.access_token = 'your_access_token' +``` + +You'll need to create a [private app](https://developers.hubspot.com/docs/api/private-apps) to get your access token or you can obtain OAuth2 access token. + +#### Hapikey support: + +Please, note that hapikey is no longer supported after v5.1.0. You can get more info about hapikey sunset [here](https://developers.hubspot.com/changelog/upcoming-api-key-sunset). Also, plese, visit a [migration guide](https://developers.hubspot.com/docs/api/migrate-an-api-key-integration-to-a-private-app) if you need help with a migration process. + +### OAuth API + +#### Obtain OAuth2 access token: + +```python +from hubspot.auth.oauth import ApiException + +try: + tokens = api_client.auth.oauth.tokens_api.create_token( + grant_type="authorization_code", + redirect_uri='http://localhost', + client_id='client_id', + client_secret='client_secret', + code='code' + ) +except ApiException as e: + print("Exception when calling create_token method: %s\n" % e) +``` + +### CRM API + + +#### Create contact: + +```python +from hubspot.crm.contacts import SimplePublicObjectInput +from hubspot.crm.contacts.exceptions import ApiException + +try: + simple_public_object_input = SimplePublicObjectInput( + properties={"email": "email@example.com"} + ) + api_response = api_client.crm.contacts.basic_api.create( + simple_public_object_input=simple_public_object_input + ) +except ApiException as e: + print("Exception when creating contact: %s\n" % e) +``` + +#### Get contact by id: + +```python +from hubspot.crm.contacts import ApiException + +try: + contact_fetched = api_client.crm.contacts.basic_api.get_by_id('contact_id') +except ApiException as e: + print("Exception when requesting contact by id: %s\n" % e) +``` + +#### Get custom objects page: + +```python +from hubspot.crm.objects import ApiException + +try: + my_custom_objects_page = api_client.crm.objects.basic_api.get_page(object_type="my_custom_object_type") +except ApiException as e: + print("Exception when requesting custom objects: %s\n" % e) +``` + +#### Get all: + +`get_all` method is available for all objects (Companies, Contacts, Deals and etc). + +```python +all_contacts = api_client.crm.contacts.get_all() +``` + +Please note that pagination is used under the hood to get all results. + +## Search: + +`do_search` method is available for all objects (Companies, Contacts, Deals and etc). + +### Example Search by date: +```python +import hubspot + +from dateutil import parser +from pprint import pprint +from hubspot.crm.contacts import PublicObjectSearchRequest, ApiException + +api_client = hubspot.Client.create(access_token="YOUR_ACCESS_TOKEN") + +# timestamp in milliseconds +date = str(int(parser.isoparse("XXXX-XX-XXTXX:XX:XX.XXXZ").timestamp() * 1000)) +public_object_search_request = PublicObjectSearchRequest( + filter_groups=[ + { + "filters": [ + { + "value": date, + "propertyName": "lastmodifieddate", + "operator": "EQ" + } + ] + } + ], limit=10 +) +try: + api_response = api_client.crm.contacts.search_api.do_search(public_object_search_request=public_object_search_request) + pprint(api_response) +except ApiException as e: + print("Exception when calling search_api->do_search: %s\n" % e) + +``` + +### CMS API + +#### Get audit logs: + +```python +from hubspot.cms.audit_logs import ApiException + +try: + audit_logs_page = api_client.cms.audit_logs.default_api.get_page() +except ApiException as e: + print("Exception when calling cards_api->create: %s\n" % e) +``` + +### Using utils + +#### Get OAuth url: + +```python +from hubspot.utils.oauth import get_auth_url + +auth_url = get_auth_url( + scopes=('contacts',), + client_id='client_id', + redirect_uri='http://localhost' +) +``` + +#### Validate HubSpot request signature + +[Example](./sample-apps/webhooks-app/src/routes/webhooks.py) of usage from [Webhooks Sample App](./sample-apps/webhooks-app): + +```python +import os +from flask import request +from hubspot.utils.webhooks import validate_signature +from hubspot.exceptions import InvalidSignatureError + +try: + validate_signature( + signature=request.headers["X-HubSpot-Signature"], + signature_version=request.headers["X-HubSpot-Signature-Version"], + http_uri=request.base_url, + request_body=request.data.decode("utf-8"), + client_secret=os.getenv("HUBSPOT_CLIENT_SECRET"), + ) +except InvalidSignatureError: + print("Request signature is not valid") + +``` + +### Retry middleware + +You can pass an instance of [urllib3.util.retry.Retry](https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html) class to configure http client retries. +With internal error retry middleware: + +```python +from hubspot import HubSpot +from urllib3.util.retry import Retry + +retry = Retry( + total=3, + backoff_factor=0.3, + status_forcelist=(500, 502, 504), +) +api_client = HubSpot(retry=retry) +``` +Or with rate limit retry middleware: + +```python +from hubspot import HubSpot +from urllib3.util.retry import Retry + +retry = Retry( + total=5, + status_forcelist=(429,), +) +api_client = HubSpot(retry=retry) +``` + +### Convert response object to dict + +`to_dict` method is available for most response objects + +```python +contacts = api_client.crm.contacts.basic_api.get_page() +for contact in contacts: + print(contact.to_dict()) +``` + +## Sample Apps + +Please, take a look at our [Sample apps](https://github.com/HubSpot/sample-apps-list) + +## Contributing + +Install the package locally: + +``` +pip install -e . +``` + +Set up the development virtualenv: + +``` +make +``` + +Run tests: +``` +make test +``` + +Run [Black](https://github.com/psf/black) for code formatting: +``` +make fmt +``` + + +%prep +%autosetup -n hubspot-api-client-7.5.0 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-hubspot-api-client -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Mon Apr 10 2023 Python_Bot <Python_Bot@openeuler.org> - 7.5.0-1 +- Package Spec generated |