1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

PythonからToggl APIを呼ぶ

Last updated at Posted at 2018-10-06

僕は普段の生活において、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)

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?