MENU
  • 手帳
    • 手帳 リフィル自作した手帳のリフィルを公開していきます!
    • 手帳 レビュー
    • 手帳 アイデア
    • 手帳 セルフコーチング7つの習慣セルフコーチング認定コーチとして、独自に培ってきたセルフコーチング×手帳のノウハウを備忘録的にまとめます٩( ‘ω’ )و
    • 手帳 ジャーナリング
  • 独学
    • 独学 キャリアコンサルタント国家資格キャリアコンサルタントの試験対策や学んだコトなどをまとめていきます!
    • 独学 プログラミング
    • 独学 リスキリング自分で楽しく効率よく学習するリスキリングのTipsや参考情報をまとめますᕦ(ò_óˇ)ᕤ
  • ワーク
    • キャリア 転職
    • マインドセット
    • マインドフルネス自分の気持ちを高めて、常に前向きに平常心でいるためのTipsや参考情報をまとめます!
    • ツール活用 効率化
人気の記事ランキングTOP 5!
  • 【自作手帳】自作リフィルのおすすめテンプレート10選!(PDF無料ダウンロード可!)
  • 【2026最新】ジャーナリングのおすすめ本10選!Unlimited対応も!
  • 【自作手帳】Word,Excelで出来る!A5システム手帳のリフィル自作方法
  • 【無料】Goodnotes6で使えるデジタルプランナー・テンプレート10選(PDFダウンロード可)
  • 【保存版】Goodnotes6の使い方まとめ!PDFの読み込み・PDF化・メモの書き方を徹底解説
手帳でキャリアも人生も自分らしく!
キャリアの実験室
  • 手帳
    • 手帳 リフィル自作した手帳のリフィルを公開していきます!
    • 手帳 レビュー
    • 手帳 アイデア
    • 手帳 セルフコーチング7つの習慣セルフコーチング認定コーチとして、独自に培ってきたセルフコーチング×手帳のノウハウを備忘録的にまとめます٩( ‘ω’ )و
    • 手帳 ジャーナリング
  • 独学
    • 独学 キャリアコンサルタント国家資格キャリアコンサルタントの試験対策や学んだコトなどをまとめていきます!
    • 独学 プログラミング
    • 独学 リスキリング自分で楽しく効率よく学習するリスキリングのTipsや参考情報をまとめますᕦ(ò_óˇ)ᕤ
  • ワーク
    • キャリア 転職
    • マインドセット
    • マインドフルネス自分の気持ちを高めて、常に前向きに平常心でいるためのTipsや参考情報をまとめます!
    • ツール活用 効率化
キャリアの実験室
  • 手帳
    • 手帳 リフィル自作した手帳のリフィルを公開していきます!
    • 手帳 レビュー
    • 手帳 アイデア
    • 手帳 セルフコーチング7つの習慣セルフコーチング認定コーチとして、独自に培ってきたセルフコーチング×手帳のノウハウを備忘録的にまとめます٩( ‘ω’ )و
    • 手帳 ジャーナリング
  • 独学
    • 独学 キャリアコンサルタント国家資格キャリアコンサルタントの試験対策や学んだコトなどをまとめていきます!
    • 独学 プログラミング
    • 独学 リスキリング自分で楽しく効率よく学習するリスキリングのTipsや参考情報をまとめますᕦ(ò_óˇ)ᕤ
  • ワーク
    • キャリア 転職
    • マインドセット
    • マインドフルネス自分の気持ちを高めて、常に前向きに平常心でいるためのTipsや参考情報をまとめます!
    • ツール活用 効率化
  1. ホーム
  2. 独学
  3. 独学 プログラミング
  4. 【GAS】Toggl × IFTTT | 音声でタイムトラッキングするプログラムを作る

【GAS】Toggl × IFTTT | 音声でタイムトラッキングするプログラムを作る

2024 11/21
独学 プログラミング
ワタシ

ども、らーにゃです。今回はGASの活用についてまとめます。

身の回りのことをもっと自動化できないものか?

仕事でもプライベートでも忙しくなるほどに自動化の必要性・重要性は増していると思います。

例えば、時間管理については個人的にTogglを使って計測しているのですが

「あ、入れ忘れていた…」

ということが頻発しており、入力を簡易化して入力漏れがないようにできないかと考えることが多々あります。

そんな中、最近GAS(Google Apps Script)を勉強している中で

『これを活用することで入力作業が変わる!』

と思えるものが出来たので、備忘録的に下記に記載します。

自動化やGASのプログラミングに興味があるけど、どんなことなら出来るのか…と思っている初心者の方のご参考になれば幸いです。(‘ω’)ノ

合わせて確認した記事
コピペで出来るGAS自動化プログラムまとめ

また、Togglが2021年にAPIのコードが変更になりましたので、下記コードを参考にしたい場合は下記の点だけ注意してご確認ください!

合わせて確認した記事
TogglのAPIを利用したデータ連携の仕様変更について
目次

今回の論点整理

今回取り扱うのは音声入力を扱った時間管理ソフトの起動プログラムになります。

具体的には、Google Assistantによって音声入力を行い、Togglを起動してトラッキングするプログラムです。

イメージとしては以下の通り。

これによって、スマホやPCを立ち上げずとも、下記のスマートスピーカーやスマートウォッチなどからも時間計測が可能になります。

Google Assistantが使えるデバイスは例えば下記のようなものが挙げられます。

Google グーグル GA00638-JP Google Nest Mini スマートスピーカー チョーク
  • Amazon
  • 楽天市場
  • Yahooショッピング
Google Nest-Chalk ホワイト
created by Rinker
Google
¥15,200 (2026/02/20 10:28:55時点 Amazon調べ-詳細)
  • Amazon
  • 楽天市場
  • Yahooショッピング
Fitbit Sense Alexa搭載/GPS搭載 スマートウォッチ Carbon/Graphite カーボン/グラファイト L/S サイズ [日本正規品]
Fitbit(フィットビット)
  • Amazon
  • 楽天市場
  • Yahooショッピング

今回は、これらのデバイスを使いながらGoogle Assistant経由で入力されたデータを元にTogglを起動するコードを中心に触れていきます。

具体的には下記の3点についてまとめます。

今回の論点
  • Google Assistant, Togglとは何か
  • 自動計測プログラム
  • 自作プログラムへの拡張

順に触れていきます。

結論だけ知りたい場合は2のトコのみご参照くださいませ(-_-)

Google Apps Script の活用ポイント

Google Assistant, Togglについて

まず、今回関連する2つのソフトウェアについて触れていきます。

Google Assistantとは

Google AssistantとはGoogleの開発しているスマートスピーカー用のプログラムです。

AmazonのAlexaやAppleのSiri、MicrosoftのCortanaと同様に、かけられた音声に応じて情報を提供するプログラムです。

これらの競合がひしめく中で、世界的に見るとAmazonとGoogleの2強になっており、国内に関していえばGoogleがシェアトップになります。

■ご参考リンク(スマートスピーカーの普及率)

そのため、国内で日本語で利用する際にはGoogle Assistantを使って、まず間違いはないです。

その上で考えたいのが

『で、何が出来るのか?』

という点かと思いますが、パッと思いつくところでは下記のようなことなどが挙げられます

  • 音声で各種検索をする
  • 音声で家の電気やスイッチを操作する
  • 音声で各種ソフトを起動する

つまり対応するデバイスやスマートフォンを使って身の回りの操作を自分の”声”で操ることができます。

また、声の認識率や、スムーズな受け答えに関しては技術革新とともに、どんどん改善されておりストレスがありません。

まだ使ったことがないという方は試しに1つだけ購入して試してみることをオススメします。

Togglとは

Togglとは時間トラッキングサービスの一種です。

調べてみると時間トラッキングサービスは色々あります。

その中でも、Togglはシェアも高く誰でも感覚的につかいやすいというコメントが目立ちます。

■ご参考リンク(タイムトラッキングサービスの例)

結構、有名企業でも導入されているっぽいので、サービス品質の安心感があります!

Togglホームページより抜粋

で、これらのトラッキングサービスで何ができるのか?

と考えると、基本的な機能は大きく以下の2つだったりします。

  • その都度、時間を記録する
  • 記録した時間を振り返る

TogglはとにかくUIがシンプルで使いやすく、後述する連携プログラムを組むために必要な外部APIも公開できます。

今回はこのソフトを使って、自動計測をしていきます。

具体的な使い方や登録の流れは下記にまとめます。

合わせて確認したい記事

”Toggl”の無料と有料で出来る事、使い始めるまでの3つのステップ

ワタシ

初心者でも自動化のプログラムが組めるというのは夢がありますね。

自動計測プログラムのコード

今回は、GASを利用してトラッキングする自動計測プログラムを作成します。

アウトプットのイメージとして、下記のように声をかけると指定のプログラムが実行されるプログラムです。

一度作成してしまえば、その後はいくらでも拡張できるので、ベースになるプログラムを抑えましょう。

プログラムのコード

結論としては、下記コードをコピペして部分的に修正すればそれで完了です。

unction doPost(e){

  var jsonStr = e.postData.getDataAsString();
  var data = JSON.parse(jsonStr);
  var authData = Utilities.base64Encode(data.user + ':api_token');

//1つ目がプロジェクトの識別、2つ目がトラッキングする名称
  if(data.word != ""){
    var split_word = data.word.split(" ")
    var task_name = split_word[0]
    var task_name2 = split_word[1]

//★入れた音声データによってプロジェクトを分岐
    var project_name = ""
    if (task_name == "スタート"){
      project_name = "1.研鑽 ブログ"
    }else if(task_name == "ストップ"){
      response = stopEntry(authData)
    }else{
      project_name = "その他"
    }

//識別と名称を分けるのが面倒で同じにしてしまう場合はtask_name2をtask_nameにしてもOK
    var response = startEntry(task_name2,project_name,authData);
  }else{
    var response = stopEntry(authData);
  }
  return ContentService.createTextOutput(response);
}

//識別と名称を分けるのが面倒で同じにしてしまう場合はtask_name2をtask_nameにしてもOK
function startEntry(task_name2,project_name,authData){
  var startUrl = "https://www.toggl.com/api/v8/time_entries/start";
  var wid = getWorkspaceId(authData)
  var pid = getProjectId(project_name,authData)
  var options = {
    'method' : 'post',
    'headers' : {"Authorization" : "Basic " + authData},
    'contentType' : 'application/json',
    'payload' : "{\"time_entry\":{\"description\":\"" + task_name2 + "\",\"wid\":\"" + wid + "\",\"pid\":\"" + pid + "\",\"created_with\":\"Google Apps Script\"}}"
  }
  var response = UrlFetchApp.fetch(startUrl, options);
  return response;
}

//Togglを止める時(ストップといった時)の関数
function stopEntry(authData){
  var entry_id = getEntryId(authData);
  Logger.log(entry_id);
  var response = stopEntryById(entry_id, authData);
  return response;
}

function getEntryId(authData){
  var currentUrl = "https://www.toggl.com/api/v8/time_entries/current";
  var options = {
    'headers' : {"Authorization" : "Basic " + authData}
  }
  var response = UrlFetchApp.fetch(currentUrl, options);
  var json = JSON.parse(response.getContentText());
  return json.data.id;
}

//Togglを止める時(ストップといった時)の関数
function stopEntryById(id, authData){
  var stopUrl = "https://www.toggl.com/api/v8/time_entries/" + id + "/stop";
  var options = {
    'method' : 'put',
    'headers' : {"Authorization" : "Basic " + authData},
    'contentType' : 'application/json'
  }
  var response = UrlFetchApp.fetch(stopUrl, options);
  return response;
}

function getWorkspaceId(authData){
  var currentUrl = "https://www.toggl.com/api/v8/workspaces";
  var options = {
    'headers' : {"Authorization" : "Basic " + authData}
  }
  var response = UrlFetchApp.fetch(currentUrl, options);
  var json = JSON.parse(response.getContentText());
  return json[0].id;
}

function getProjectId(project_name,authData){
  var workspace_id = getWorkspaceId(authData)
  var currentUrl = "https://www.toggl.com/api/v8/workspaces/" + workspace_id + "/projects";
  var options = {
    'headers' : {"Authorization" : "Basic " + authData}
  }
  var response = UrlFetchApp.fetch(currentUrl, options);
  var json = JSON.parse(response.getContentText());
  for(var i = 0;i < json.length;i++){
    if(project_name == json[i].name){
      var pid = json[i].id
    }
  }
  return pid;
}

該当箇所(★)の修正は必要なものの基本はコピペでいけるはずです。

プログラムの簡単な説明

上記のプログラムは下記のような挙動をします。

プログラムの挙動
  • 「スタート ●●」という情報をいれる
    ▷『1.研鑽 ブログ』というプロジェクトの●●というトラッキングが始まる。
  • 「ストップ ●●」という情報をいれる
    ▷動いているトラッキングが停止する
  • 上記以外の情報を入れる
    ▷『その他』というプロジェクトの●●というトラッキングが始まる

ここで、「スタート」と「ストップ」というのは入力する音声情報であり、

『1.研鑽 ブログ』、『その他』というのは元々Togglで登録しているプロジェクト名です。

そのため、上記を踏まえてオリジナルのプログラムにするには下記を修正してください。

修正する箇所
  • 上記「★入れた音声データによってプロジェクトを分岐」部を変更
  • ➡「スタート」、「ストップ」の箇所を認識させたい好きな単語に変更
  • ➡『1.研鑽 ブログ』、『その他』の箇所をTogglのプロジェクト名に変更

ここで、今プログラムにはTogglのAPIトークンを入れる箇所がありませんが、問題ありません。

後述のIFTTTでの登録部分にて入力をするので追って説明します。

ツマ

単純にコピペするだけでいいなら楽だね

プログラムの接続(IFTTT)

次に、上記のプログラムを音声入力した後に起動できるようにプログラム同士をつなぎます。

前提としてGoogle Assistantが利用できるデバイスを用意し、IFTTTというサービスで上記プログラムが起動するように設定します。

通常は有料のサービスになりますが、独自プログラムは3つまでは無料で使えるので無料枠で利用しましょう。

使い方やサービスの概要の説明は下記に記載します。

合わせて読みたい記事

IFTTTとは何か?IFTTTを活用した情報整理術

まずは事前に下記のようなスマートスピーカーを準備しておきましょう。(ない場合はGoogle AssistantのスマホアプリだけでもOK)

Google グーグル GA00638-JP Google Nest Mini スマートスピーカー チョーク
  • Amazon
  • 楽天市場
  • Yahooショッピング

それではまずIFTTTを立ち上げて新たなアプリを起動します。

その後にIF部分にGoogle Assistant、THEN部分にWebhookを選択します。

まずGoogle Assistantの設定は以下のおとりです。

Say a phrase with a text ingredientを選択し、入力のルールと、反応結果を登録します。

上記の場合、入力情報を与える時のトリガーになるのが

「スタート ●●」

もしくは

「計測 ●●」

と話しかけることになります。

このように話しかけると、結果的にGoogle Assistantに対応したデバイスから

「●●のトラッキングを始めます」

という反応が返るプログラムになります。

ちなみに、●●の部分がIFTTTのコードでいうと$になります。

続いて、Webhookは下記のような内容になります。

URL部分は、先ほど上記であげた、GASのプログラムをデプロイしたウェブアプリのURLになります。

このURLを参照する方法も下記に示します。

GASのプログラムの右上にある、デプロイボタンから「新しいデプロイ」を押して新しいウェブアプリとして公開します。

※ここでアクセスできるユーザーを全員にしないとエラーが出るので注意。

その後下記のようにウェブアプリのURLが公開されますのでこれをコピペします。

また、先ほどのWebhookのBodyに値するところに、下記のTogglのAPIを含めた内容を記載します。

Bodyデータ={“user”: “TogglのAPI”, “word” : “TextField”}

ちなみに、TogglのAPIトークンは下記のように確認できます。

Toggl APIトークンの参照の仕方
  1. Togglにログイン
  2. 左下のプロフィールからprofile settingをクリック
  3. 下にスクロールしてAPI Tokenをクリック

この情報を入力出来れば準備完了です。

プログラムの実行

あとはこれを実際に動くか試して、必要に応じて修正します。

下記4点を音声入力で意識します。

  • 『ねぇGoogle 』という
    ➡ Google Assistant起動
  • 『計測(スタート)』という
    ➡ 上記プログラムの起動
  • 『スタート』という
    ➡ プロジェクトを指定
  • 『ブログ記載』
    ➡ トラッキングの名前を指定

上記を踏まえ、我が家の場合では、リビングと書斎にスマートスピーカーがあるので、下記のように話しかけます。

「ねぇgoogle, 計測、スタート、ブログ記載」

と語りかけると、指定のプロジェクト・名称でTogglタイマーが起動します。

これが確認出来れば成功です。

尚、Togglが起動しないなどのエラーが出る場合は、IFTTTを全て取り消してゼロから作り直すとうまくいくケースが多いです。

エラーが出ずにうまくできると感動ものなので、ぜひ頑張ってトライしてみてください!

ツマ

定例的な作業などは全部こういうプログラムに置き換えたいね

まとめ

今回ポイントしてまとめてきたのは以下の2点です。

抑えたいポイント
  • Google Assistant, Togglとは何か
    ▷音声入力して各種ソフトを起動させるツールと広く使われる時間計測ツール
  • 自動計測プログラム
    ▷IFTTTを利用してTogglを声で起動させるプログラムを作る

以上です。

今回は一例を出しましたが、GASを扱うことが出来ると、効率化・自動化をさせることは無限大です。

そしてこのGASの何と言っても素晴らしいのが環境不要!そしてしかもタダ!ということです。

仕事でつかえる部分があるのは勿論のこと、プライベートでも利活用できるオトク技がいっぱいなため、非エンジニアの人でもぜひトライしてみてください!

とにかく私のような初心者の人が手軽に試して面白い!と感じて飽きる前に習慣化できるように、今まで作ったコードは公開していくのでコピペして利用・参考にして下さい。

合わせて確認した記事
コピペで出来るGAS自動化プログラムまとめ

自身の今のスキルや状況に応じて、次のステップアップに向けた動きを付けて一緒に自動化・効率化の技術を上げていきましょう!(‘ω’)ノ

学習(Udemy)▼

GASをサクっと学んでアウトプットするには動画教材がオススメです!

GASの解説は良質なコンテンツが多いです(´∀`*)

オススメ①:【新IDE対応】Google Apps Script(GAS)の基礎を完全習得 -初心者歓迎-【爆速で習得しちゃおう】 icon
オススメ②:独学で身につけるGAS(Google Apps Script)〜基礎編〜【業務効率化・自動化で残業を無くそう!】 icon
オススメ③:5つの活用事例から40のスキルが身につく、Google Apps Script(GAS)開発入門【ES2015対応】 icon

※評価が4.0を超えて割引にもなっているコンテンツは特におすすめです!

あわせて読みたい
【徹底比較】PythonとGASをどちらを学ぶべきか?実際に両方を学んで分かった違いとオススメ学習法 ワタシ ども、らーにゃです。今回はPythonとGASを比較していきます。 自分は非エンジニアだけど… 「もっともっと効率化したい!」 「プログラムを書けるようになりたい...

ご精読頂きありがとうございました!
m(_ _)m

独学 プログラミング
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
  • 【GAS】定刻にGmailを自動発信するプログラムを作る | Google Apps Script
  • 【GAS】Fitbit APIで計測データを見える化するプログラムを作る

この記事を書いた人

らーにゃのアバター らーにゃ

ビビっときたTipsや手帳術を発信します ٩( ᐛ )و

●家族:フルキャリ妻と子供2人

●資格:国家資格キャリアコンサルタント

●趣味:手帳歴20年 | 自作歴12年| デジプラ歴4年

関連記事

  • 【GAS】ショートカットを利用してApple Watch→スプレッドシートのデータ連携を行う
  • 【レビュー】ChatGPTの使い方 | プログラミング初心者の応用 (GAS/Python)
  • 【GAS】Google Fitのデータをスプレッドシートに引き抜くプログラムを考える
  • 【徹底比較】PythonとGASをどちらを学ぶべきか?実際に両方を学んで分かった違いとオススメ学習法
  • 【GAS】TogglのAPIを利用したデータ連携の仕様変更について
  • 【Python入門】コピペしてそのまま使えるPythonの自動化プログラムまとめ
  • 【Python自動化】GoogleスプレッドシートにPythonからデータを流し込む方法
  • 【Python自動化】タスクスケジューラで定時にPythonファイルを自動実行する方法

コメント

コメントする コメントをキャンセル

ブログの記事一覧
らーにゃ
国家資格キャリアコンサルタント
カナダでキャリコン/キャリアコーチをしながら理想のセカンドキャリアを作るヒントや考え方をブログやYouTubeで発信中!

●家族:
ーフルキャリの妻1人+子供2人
●趣味:
ー手帳歴20年 | 自作12年 | デジプラ3年
ーブログ歴8年 | YouTube歴1年
●資格:
ー国家資格キャリアコンサルタント
ー7つの習慣セルフコーチング認定コーチ
ーライフコーチ
人気の記事ランキングTOP5!
  • 【自作手帳】自作リフィルのおすすめテンプレート10選!(PDF無料ダウンロード可!)
  • 【2026最新】ジャーナリングのおすすめ本10選!Unlimited対応も!
  • 【自作手帳】Word,Excelで出来る!A5システム手帳のリフィル自作方法
  • 【無料】Goodnotes6で使えるデジタルプランナー・テンプレート10選(PDFダウンロード可)
  • 【保存版】Goodnotes6の使い方まとめ!PDFの読み込み・PDF化・メモの書き方を徹底解説
目次
検索
  • プロフィール
  • サイトマップ
  • プライバシーポリシー
  • お問い合わせ

© キャリアの実験室.

  • メニュー
  • ジャーナル
  • 自作手帳
  • アイデア
目次