Skip to main content

A client for the Harvest API (getharvest.com)

Project description

Harvest API client
===================================

A Python library for Harvest's API (getharvest.com) which supports OAuth2 authentication. It's inspired by https://github.com/lann/Harvest and has some distinctions:

* Supports Python 3x
* Supports Oauth2
* Has tests coverage

It doesn't support the basic authentication.

How to install
-----

```
$ pip3 install harvest_api_client
```

How to use it
-----

**Get the access and refresh tokens and put them in a file:**

```
{
"access_token": {
"last_refresh_time": "2015-04-20T00:18:52.494946",
"value": "[your access token]"
}, "refresh_token": {
"last_refresh_time": "2015-04-20T16:02:30.831858",
"value": "[your refresh token]"
}
}
```
**And you're ready to go:**

```python
from datetime import datetime, timedelta
from harvest_api_client import Harvest

client_secret = 'your secret token'
client_id = 'your client id'
tokens_file_name = 'tokens.json'

h = Harvest(client_secret=client_secret, client_id=client_id, tokens_file_name=tokens_file_name)
u1 = h.find_user('user1_first_name', 'user1_last_name')
# => <harvest_api_client.harvest.User object at 0x108cb2da0>

u2 = h.find_user('aaa', 'bbb') # <class 'NoneType'>
# => <class 'NoneType'>

print("\nProjects...")
for p in h.projects():
print(p)

print("\nUsers...")
for u in h.users():
print(u)
date1 = datetime(2013, 1, 1)
date2 = datetime(2015, 11, 11)

print("\nEntries...")
for e in u.entries(date1, date2):
print(e)
```


Source
-----

The source is available at https://github.com/GildedHonour/harvest-api-client


License
-----

The MIT License (MIT)

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

harvest_api_client-1.1.3.tar.gz (5.9 kB view details)

Uploaded Source

File details

Details for the file harvest_api_client-1.1.3.tar.gz.

File metadata

File hashes

Hashes for harvest_api_client-1.1.3.tar.gz
Algorithm Hash digest
SHA256 455127e92935137e626bace758cc4c8574942ff91f2ac42dec68672efc967970
MD5 269fdea4d0d556e34fccb1f806552185
BLAKE2b-256 aa8e11b618a174399e4e2286c5bbe3de2495fbdb319a9532f78da44bc9676e6d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page