僕は普段の生活において、Togglを使用して自分が何に時間を使っているのかを計測しています。
本家サイトでは期間毎に集計したレポートを見ることができるのですが、このAPIを呼び出すスクリプトを書いてみました。
何をしたいか
Togglでは、各タスク毎にプロジェクトを設定することができるので、1日に費やした1プロジェクトの合計時間を計算し、それをアプリに組み込みたい。
token と workspace_idを確認する
APIのtokenはプロフィール画面の1番下から確認できます。
workspace_idは、正しい確認の方法がわからないのですが、「Projects」タブのURLを確認して
「https://toggl.com/app/projects/(workspace_id)/list/page/1」
の中の「projects」と「list」の間がworkspace_idのようです。
コード
toggl.py
import requests
import pprint
import sys
from datetime import date
proj = sys.argv[1] # 集計したいプロジェクト名
API_TOKEN = '' # 確認したトークンを設定
W_ID = '' # 確認したworkspace_idを設定
MAIL = '' # 登録したメールを設定
def get_toggl():
headers = {'content-type': 'application/json'}
today = date.today().isoformat()
params = {
'user_agent': MAIL,
'workspace_id': W_ID,
'since': today,
'until': today
}
auth = requests.auth.HTTPBasicAuth(API_TOKEN, 'api_token')
return requests.get('https://toggl.com/reports/api/v2/summary', auth=auth, headers=headers, params=params)
if __name__ == '__main__':
summary = get_toggl().json()['data']
for data in summary:
project = data['title']['project']
if project == proj:
time = float(data['time']) / 3600000
print(time)