PHP
HTML
api
toggl

togglApiを使って日報を書く

はじめに

togglで日報を書く&業務時間の管理を試みます。
よくPythonを使用してtogglApiを叩いている方を見るのですがphpは見たことがないので今回やってみます。

必要なもの

togglアカウント
php実行環境

プログラム

toggl.php
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>toggl</title>
</head>
<body>
<?php
$curl = curl_init();
$date = date("Y-m-d");
// 過去の日付指定はここで再代入すればいける
// $date = "2018-04-05";
// https://toggl.com/app/profileに表示される API token
$api_token = "api_token";
// ダッシュボードとかにアクセスした時にURLの右に表示される数字 https://toggl.com/app/dashboard/me/〇〇〇〇
$workspace_id = "12345";
// 登録に使用したEmail
$user_agent = "toggl@example.com";

$total = 0;
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_URL, "https://toggl.com/reports/api/v2/summary?since=" . $date . "&until=" . $date . "&workspace_id=" . $workspace_id . "&user_agent=" . $user_agent); 
curl_setopt($curl, CURLOPT_USERPWD, $api_token . ":api_token");
$json = curl_exec($curl);
curl_close($curl);
?>
<?php foreach (json_decode($json, true)["data"] as $array) : ?>
<div><p style="color:<?php echo $array["title"]["hex_color"]; ?>;" ><?php echo $array["title"]["project"]; ?></p>
<?php 
      foreach ($array["items"] as $value) : 
        $minutes = $value["time"] / 1000 / 60;
        $total += $minutes;
?>
<span><?php echo "【" . $value["title"]["time_entry"] . "】"; ?></span>
<span><?php echo sprintf("%02d時間 %02d分", floor($minutes/60), $minutes%60); ?></span>
<br>
<?php endforeach; ?>
</div>
<?php endforeach; ?>
<p><?php echo "合計: " . sprintf("%02d時間 %02d分", floor($total/60), $total%60); ?></p>
</body>
</html>

キャプチャ

ブラウザ

スクリーンショット 2018-04-05 18.38.14.png

アプリ

スクリーンショット 2018-04-05 18.41.42.png

実際使ってみて

アプリのtogglに合計値を計算するという機能がないので自分があと何時間働けばいいのかにこれをよく見ます。
あと、日報を書くときもアプリでは文字を簡単にコピペできないのでこれを使ってコピペします。

意外と使わないかもと思いながら作ったら結構役に立っているのでtoggl使っている方はapiを使用するのオススメです。

詳しい仕様はtogglApi-githubを見てください。