(license)みなさん、こんにちは!タカハシ(@ntakahashi0505)です。Googleスプレッドシート上に勤怠管理集計システムを作っています。Scriptでチャットワークでのチャット打刻システムを作るGoogleスプレッドシートを使って勤怠管理集計システムを作成しています。Scriptでチャットワークからの出勤・退勤の打刻情報を受け取るスクリプトを作っていきます。tonari-it.com2016.09.04チャットワークの打刻用グループで「出勤」「退勤」などのメッセージが送られてきたら、その内容に応じてログ出力をするというスクリプトを組みました。Scriptでの日時の取り扱いについてマスターをしていきたいと思います。Dateオブジェクトの生成のいくつかの種類と要素を取得するメソッド、またDateオブジェクトを日付と時刻に分解する方法などです。前回のおさらいチャットワークで打刻した日付と時刻を取得するUNIX時間を日付と時刻に分解するJavaScriptのDateオブジェクトの生成方法Dateオブジェクトの各要素を取得するメソッドDateオブジェクトを日付と時刻に分ける実行結果まとめ連載目次:チャットワークのメッセージ送信で出勤・退勤の打刻をする前回のおさらい前回作成したスクリプトはこちらです。obj.body.match(/お疲れ/)){Logger.log("退勤");}}}catch(e){Logger.log('エラーが発生しました');Logger.log(e.message);}}11行目までで、チャットワークの特定のグループチャットからのメッセージをごそっと取得してきます。「退勤」または「お疲れ」を含むなら「退勤」をログ出力という処理を行います。今回は目標として、このスクリプトにチャットワークAPIのレスポンスからメッセージ送信時の日付と時刻を取得する処理を追加していきたいと思います。チャットワークで打刻した日付と時刻を取得するまずチャットワークAPIからのレスポンスは以下のような構造になります。0}]ここでいう「send_time」がメッセージの送信日時に該当していますので、obj.send_timeで取得できそうですね。10桁の数値...日時っぽくないなぁなどと思われるかも知れませんが、そうなんです。このチャットワークAPIのレスポンスで取得できる日時はUNIX時間です。UNIX時間については以下記事でも説明していますが、1970年1月1日0時0分0秒からの経過秒数で表現する形式です。ScriptでチャットワークAPIを操作してチャットワークに期限付きのタスクを追加する方法です。その際に使うUNIX時間の取得方法、数値の固定小数点表記の方法についても触れます。tonari-it.com2016.04.06打刻のデータシートとしては、「日付」と「時刻」を別々に取得したいので、このUNIX時間を分解していく必要があります。一度、JavaScriptのDateオブジェクトについて整理をしてみましょう。Dateオブジェクトの生成方法にはいくつかの種類があります。引数を指定しない場合は、現在の日時でDateオブジェクトを生成します。指定することで、該当日時のオブジェクトを生成することができます。0)また括弧内に文字列形式で指定することで、該当日時のDateオブジェクトを生成することができます。02:00:00’)またUNIX時間はミリ秒に変換すればDateオブジェクトを生成できます。Date(UNIX時間*1000)と、このような種類があります。Dateオブジェクトの各要素を取得するメソッドまた、Dateオブジェクトに対してそれぞれの値をを取得するメソッドはこちらでしたね。以下記事もご覧ください。Scriptで特定月のカレンダーのイベント情報を取得するGoogleカレンダーの記録を活用して過去の仕事の生産性を測定するしていきます。Scriptで特定の月のカレンダーのイベント情報を取得する方法についてお伝えします。生成したDateオブジェクトから日付だけまたは時刻だけを抜き出すという手順で進めればOKですね。抜き出すというのは、欲しい要素以外はゼロにしてDateオブジェクトを生成するということです。//レスポンスから送信日時を取り出すとします。Date(date.getFullYear(),date.getMonth(),date.getDate(),0,0,0);時刻だけを取得したい場合は、年、月、日をゼロにします。システムとしては秒も加味しないのでゼロに切り捨てちゃいます。Date(0,0,0,date.getHours,date.getMinutes,0);実行結果では前述の3行を元にスクリプトを以下のように修正しました。",退勤");}}}catch(e){Logger.log('エラーが発生しました');Logger.log(e.message);}}チャットワークの該当のグループチャットにて「出勤です」「お疲れです」などと入力した上で、スクリプトを実行してみますとこのように、ログ出力がされました。ScriptでのDateオブジェクトの取り扱いについてお伝えしてきました。年、月などの要素を取得するメソッドDateオブジェクトから日付、時刻のみを取得する方法などですね。Javascriptの場合、Dateオブジェクトの取り扱いはなかなか厄介ですので、一つ一つマスターして頂ければよいと思います。次回ですが、チャットワークAPIのレスポンスからアカウントID、かつ打刻情報をシートの最終行に追加していきたいと思います。Scriptでチャットワークからの打刻情報をシートの最終行に追加する方法Googleスプレッドシート上に勤怠管理集計システムを作っています。Scriptでチャットワークからの打刻情報をappendRowでシートの最終行に追加する方法です。Scriptとスプレッドシートを用いて作っていきます。プランノーツ代表、コミュニティ「ノンプロ研」主宰。ITで日本の『働く』の価値を上げる!」をテーマに、VBA&GASの開発、講師、執筆などをしております。→詳しいプロフィールはコチラ★ご依頼・ご相談はお気軽にどうぞ!→お問い合わせはコチラ★フォロー頂ければ嬉しいです。「コミュニティ+講座」形式で継続性&教え合える環境も提供。!ノンプログラマーがプログラミングスキルを身に着ける支援ををするコミュニティ。セミナー・もくもく会・Facebookグループのサポートで「自らで学び続ける力をつける」支援、「教え合うことで学びの価値を上げる」場の提供をしています。ScriptGASでGoogleスライドのテキストボックスや図形などを取得する方法GASでGoogleスライドのプレゼンテーションを楽々作成するテクニックについてお伝えしています。今回はGASでGoogleスライドのShapeオブジェクトの概要とその取得方法についてお伝えします。ScriptでチャットワークAPIを活用するための最初の一歩チャットワークAPIを駆使すると、様々な操作を行うことができるようになります。Scriptでの簡単な使い方についてお伝えします。Scriptのシリーズとして、Botを作成していきます。今回は、setValueメソッドを使って、スプレッドシートのセルに値を入力する基本中の基本をお伝えします。Scriptを使って、複数の系列を持ったグラフを作成する方法を解説します。setStackedメソッドを使い、積み上げ縦棒グラフを作成し、データの可視化を行います。Scriptでクラスを作る!」シリーズをお伝えしています。今回は、GASで即時関数にクラスを定義する理由とその方法についてお伝えします。スコープとthisが重要な役割を果たします。Scriptで営業日のみトリガーを作成する方法をお伝えします。Googleカレンダーにデフォルトである祝日のカレンダーを使用する方法と、会社独自の営業日に対応する方法をお伝えします。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Apps2PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント109セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Apps2PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント109セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。開発者プログラムとは、またどうして期限切れになったのか2020.02.222020.02.22ノンプロ研の福岡で初イベント「ノンプロ研無料体験@福岡」を開催しました!2020.02.14GASのV8ランタイムとRhinoランタイムのログと実行のUIの違いについて比較&解説2020.02.092020.02.09新構文をさっそく試そう!GASのプロジェクトをV8ランタイムに切り替える方法2020.02.082020.02.12Facebookページいつも隣にitのお仕事タイトルとURLをコピーしました。