Skip to content

UnquietCode/harvest-api-client

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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:

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)

About

Python 3 API library for https://getharvest.com

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 100.0%