}else{ var bot_icon = “アイコン画像のパス”; var name = e.userName; リソース -> ライブラリ, Add a libraryにMomentのライブラリID MHMchiX6c1bwSqGM1PZiW_PxhMjh3Sh48 を入力して追加します。, これで面倒な日付処理にMomentが利用できるようになります。
var text = “お疲れモグー!\n今日も1日ご苦労さんモグ!\n明日もいい日にするモグよ!”;
var ss = SpreadsheetApp.openByUrl(‘スプレッドシートのURL’); sheet.appendRow([id, name, entrytime, state]); SlackのCustom Integrations > Outgoing WebHooks を入れる, Outgoing WebHooksのIntegration Settingsで以下の設定をする, 反応する文字列を指定する / Trigger Word(s)の設定 (出勤 / 退勤). dt: date_time, //時間 var text = “今日はどうだったモグか?お疲れ様モグ!”; var entrytime = e.dt daily = Number(daily); var lastRow = sheet.getLastRow(); if ( post_text.indexOf(‘出国’) != -1) { var ss = SpreadsheetApp.openByUrl(‘スプレッドシートのURL’);
//時間を連結してテキストで渡す { return(DateTime); var id = lastRow; if(result != 1)
var token = PropertiesService.getScriptProperties().getProperty(‘SLACK_ACCESS_TOKEN’); Tools -> Workflow Builder を開きます。, 連携するチャンネル名とショートカット名を入力します。ここで入力したshort nameが実際に表示される名前になります。, フォームは座席コードをリストから選択させたいので、Choose a question typeは「Select from a list」を選択してください。, Publishをクリックして有効化します。 //月を取得
function checkDate(){ icon_url: bot_icon 関数名は何でもよいですが、今回はfetchSlackHistory()関数としました。, このコードでは時刻処理のためにMomentライブラリを用いています。
Hatena.BookmarkWidget.load(); (function(d, s, id) { { var hours = (“0″+d.getHours()).slice(-2); はじめにこんにちは。TIG メディアユニットの久保です。 春の入門祭り #16 業務効率化・コミュニケーションツールSlack入門です。 コロナ影響により業界各社がテレワーク中心の業務体制を準備する中、コミュニケーションツールの需要が一気に高まってきました。 break; case 5:
{ break; case 3: var date_time = checkDate(); var postdata = { var app = SlackApp.create(token); var num = Math.floor(Math.random()*5+1 ); if ( post_text.indexOf(‘入国’) != -1) { var js, fjs = d.getElementsByTagName(s)[0]; var state; //出勤か退勤か //Slackのアクセストークン var result = getAttendance(postdata); うちのようなドベンチャーには、勤怠管理システムがない。 switch(num) if(state != 0) Hatena.BookmarkWidget.theme = "hatenadiary"; } var text = “お疲れさまモグ!今日の頑張りが必ず明日の為になってるモグよ!”;
function getAttendance(e){ }. 今回のプログラムではSlack APIから取得できるタイムスタンプの処理に利用しています。, 特殊なことはあまりありませんが、下方向に日時、横方向に社員が並びます。
おはようございます ← 現在時刻で出勤.
The following two tabs change content below. }, //ボットからのコメント
var verify_token = “Outgoing WebHooksのTOKENをここにコピペ”; case 1:
//勤怠システムに書き込む
var text = “おはようモグー!\n今日も1日頑張ろうモグ!”; ここまで進めると、ボタンに作ったフォームへのリンクが登場します。 フリーアドレスになってスプレッドシートで座席管理することになったので、Slackからスプレッドシートを更新できるようにしました, 2019年下半期ライトニングトーク大会とテックイノベーション賞の授賞式を開催しました!, 2019年上半期ライトニングトーク大会とテックイノベーション賞の授賞式を開催しました!, 【22新卒】11/24(火)自社開発のおもしろさを語るオンラインイベントを開催します!.
}. }. // データ入力 var text = “モグモグモグ!モグー”; 弊社ではコロナ禍のソーシャルディスタンス対策として、フリーアドレスを導入いたしました。 return (1); break; case 5:
state = 2;
本ブログに掲載のあるソフトウェアのダウンロード・記事内容の実行等(以下「ソフトウェアのダウンロード等」)は自己責任でお願い致します。, 2. function doPost(e) { case 1: }. }); 送信するとこんなかんじになります。 ワークフローの結果を集計する.
//Slackのkintaiチャンネルで入力したワードがこのイベントに入ってくる タイムカードでお困りの方はとりあえずでよければログとして残せます。, Slackの#Kintaiチャンネルで”出勤”/”退勤”と入力すると、その入力した時間がGoogleSpreadシートに名前と時間と出勤/退勤というステータスが保存されます。 break; case 6: slackワークフロー - オプション.
//Outgoing WebHooksを利用して、投稿に反応させる var message = e.parameter.user_name + “、” + text + error_text; var isError; if(state == 1){state = “出勤”;} Google Apps Scriptで書かれた、Slack上で動く勤怠管理Bot。 Slackで下記の様につぶやくと、みやもとさんがGoogle Spreadsheetに勤怠を記録してくれます。 会話例.
var daily = Utilities.formatDate(d,”JST”,”dd”); var sheet = ss.getSheets()[0]; //最終列の取得 userName: e.parameter.user_name, //ユーザー var day = dateT[d.getDay()]; //日付を取得
var state = e.state; var month = Utilities.formatDate(d,”JST”,”MM”); //曜日 Hatena.BookmarkWidget.width = 0; var d = new Date(); //今日の日付のデータを取得する(ddを使いシートの日付を取得) SLACK_ACCESS_TOKEN = “Slackの設定ページから取得する”; //出勤/退勤/時間をspledsheetに残す
var bot_name = “ボット名”;
//時間の取得(上の方で記載した関数) 勤怠管理bot - みやもとさん. var post_text = e.parameter.text;
error_text = “”; if(state == 0){isError = true;}, if(!isError) var text = “ご苦労さんです。by中の人”; return app.postMessage(e.parameter.channel_id, message, { if (d.getElementById(id)) return; fjs.parentNode.insertBefore(js, fjs); var error_text = “”; //投稿の認証 //時間 slackワークフロー. なお、フォームの選択肢に設定できる項目数が現在は最大20のようです。今回は座席が入りきらないのでフォームを島ごとに作成しています。, 冒頭に書いたように、doPost()でSlack Events APIから直接データを受け取ることができないため、時間トリガーでフェッチする関数を書いていきます。 var text = “モグーのすきなものは焼き芋モグ!”; //時
username: bot_name, 1行目には小さくSlackのユーザーIDが埋めてあります。 GASトリガーの作業. var text = “今日も子どもたちのみらいを想像して頑張ろうモグ”;
}else{ var bot_icon = “アイコン画像のパス”; var name = e.userName; リソース -> ライブラリ, Add a libraryにMomentのライブラリID MHMchiX6c1bwSqGM1PZiW_PxhMjh3Sh48 を入力して追加します。, これで面倒な日付処理にMomentが利用できるようになります。
var text = “お疲れモグー!\n今日も1日ご苦労さんモグ!\n明日もいい日にするモグよ!”;
var ss = SpreadsheetApp.openByUrl(‘スプレッドシートのURL’); sheet.appendRow([id, name, entrytime, state]); SlackのCustom Integrations > Outgoing WebHooks を入れる, Outgoing WebHooksのIntegration Settingsで以下の設定をする, 反応する文字列を指定する / Trigger Word(s)の設定 (出勤 / 退勤). dt: date_time, //時間 var text = “今日はどうだったモグか?お疲れ様モグ!”; var entrytime = e.dt daily = Number(daily); var lastRow = sheet.getLastRow(); if ( post_text.indexOf(‘出国’) != -1) { var ss = SpreadsheetApp.openByUrl(‘スプレッドシートのURL’);
//時間を連結してテキストで渡す { return(DateTime); var id = lastRow; if(result != 1)
var token = PropertiesService.getScriptProperties().getProperty(‘SLACK_ACCESS_TOKEN’); Tools -> Workflow Builder を開きます。, 連携するチャンネル名とショートカット名を入力します。ここで入力したshort nameが実際に表示される名前になります。, フォームは座席コードをリストから選択させたいので、Choose a question typeは「Select from a list」を選択してください。, Publishをクリックして有効化します。 //月を取得
function checkDate(){ icon_url: bot_icon 関数名は何でもよいですが、今回はfetchSlackHistory()関数としました。, このコードでは時刻処理のためにMomentライブラリを用いています。
Hatena.BookmarkWidget.load(); (function(d, s, id) { { var hours = (“0″+d.getHours()).slice(-2); はじめにこんにちは。TIG メディアユニットの久保です。 春の入門祭り #16 業務効率化・コミュニケーションツールSlack入門です。 コロナ影響により業界各社がテレワーク中心の業務体制を準備する中、コミュニケーションツールの需要が一気に高まってきました。 break; case 5:
{ break; case 3: var date_time = checkDate(); var postdata = { var app = SlackApp.create(token); var num = Math.floor(Math.random()*5+1 ); if ( post_text.indexOf(‘入国’) != -1) { var js, fjs = d.getElementsByTagName(s)[0]; var state; //出勤か退勤か //Slackのアクセストークン var result = getAttendance(postdata); うちのようなドベンチャーには、勤怠管理システムがない。 switch(num) if(state != 0) Hatena.BookmarkWidget.theme = "hatenadiary"; } var text = “お疲れさまモグ!今日の頑張りが必ず明日の為になってるモグよ!”;
function getAttendance(e){ }. 今回のプログラムではSlack APIから取得できるタイムスタンプの処理に利用しています。, 特殊なことはあまりありませんが、下方向に日時、横方向に社員が並びます。
おはようございます ← 現在時刻で出勤.
The following two tabs change content below. }, //ボットからのコメント
var verify_token = “Outgoing WebHooksのTOKENをここにコピペ”; case 1:
//勤怠システムに書き込む
var text = “おはようモグー!\n今日も1日頑張ろうモグ!”; ここまで進めると、ボタンに作ったフォームへのリンクが登場します。 フリーアドレスになってスプレッドシートで座席管理することになったので、Slackからスプレッドシートを更新できるようにしました, 2019年下半期ライトニングトーク大会とテックイノベーション賞の授賞式を開催しました!, 2019年上半期ライトニングトーク大会とテックイノベーション賞の授賞式を開催しました!, 【22新卒】11/24(火)自社開発のおもしろさを語るオンラインイベントを開催します!.
}. }. // データ入力 var text = “モグモグモグ!モグー”; 弊社ではコロナ禍のソーシャルディスタンス対策として、フリーアドレスを導入いたしました。 return (1); break; case 5:
state = 2;
本ブログに掲載のあるソフトウェアのダウンロード・記事内容の実行等(以下「ソフトウェアのダウンロード等」)は自己責任でお願い致します。, 2. function doPost(e) { case 1: }. }); 送信するとこんなかんじになります。 ワークフローの結果を集計する.
//Slackのkintaiチャンネルで入力したワードがこのイベントに入ってくる タイムカードでお困りの方はとりあえずでよければログとして残せます。, Slackの#Kintaiチャンネルで”出勤”/”退勤”と入力すると、その入力した時間がGoogleSpreadシートに名前と時間と出勤/退勤というステータスが保存されます。 break; case 6: slackワークフロー - オプション.
//Outgoing WebHooksを利用して、投稿に反応させる var message = e.parameter.user_name + “、” + text + error_text; var isError; if(state == 1){state = “出勤”;} Google Apps Scriptで書かれた、Slack上で動く勤怠管理Bot。 Slackで下記の様につぶやくと、みやもとさんがGoogle Spreadsheetに勤怠を記録してくれます。 会話例.
var daily = Utilities.formatDate(d,”JST”,”dd”); var sheet = ss.getSheets()[0]; //最終列の取得 userName: e.parameter.user_name, //ユーザー var day = dateT[d.getDay()]; //日付を取得
var state = e.state; var month = Utilities.formatDate(d,”JST”,”MM”); //曜日 Hatena.BookmarkWidget.width = 0; var d = new Date(); //今日の日付のデータを取得する(ddを使いシートの日付を取得) SLACK_ACCESS_TOKEN = “Slackの設定ページから取得する”; //出勤/退勤/時間をspledsheetに残す
var bot_name = “ボット名”;
//時間の取得(上の方で記載した関数) 勤怠管理bot - みやもとさん. var post_text = e.parameter.text;
error_text = “”; if(state == 0){isError = true;}, if(!isError) var text = “ご苦労さんです。by中の人”; return app.postMessage(e.parameter.channel_id, message, { if (d.getElementById(id)) return; fjs.parentNode.insertBefore(js, fjs); var error_text = “”; //投稿の認証 //時間 slackワークフロー. なお、フォームの選択肢に設定できる項目数が現在は最大20のようです。今回は座席が入りきらないのでフォームを島ごとに作成しています。, 冒頭に書いたように、doPost()でSlack Events APIから直接データを受け取ることができないため、時間トリガーでフェッチする関数を書いていきます。 var text = “モグーのすきなものは焼き芋モグ!”; //時
username: bot_name, 1行目には小さくSlackのユーザーIDが埋めてあります。 GASトリガーの作業. var text = “今日も子どもたちのみらいを想像して頑張ろうモグ”;
Hatena.BookmarkWidget.url = "s2works.net"; sheet.appendRow([id, name, entrytime, state]); 初心者向けに社内コミュニケーションツールSlack(スラック)の使い方について解説しています。Slackの始め方や登録方法が分からない方でもスムーズに進められるはずです。便利なツールなので、ぜひ使い方をマスターしましょう! //もし頭に0がついてしまう場合0は消す 現在のプロジェクトのトリガーを開きます。 時間主導型のタイマーを作成します。今回は5分おきにフェッチするようにしました。 以上で完成です。 return (2); var text = “気を付けて帰ってモグね!家に着くまでが冒険だよ!”;
}; //書き込む
break; case 2:
}else{ var bot_icon = “アイコン画像のパス”; var name = e.userName; リソース -> ライブラリ, Add a libraryにMomentのライブラリID MHMchiX6c1bwSqGM1PZiW_PxhMjh3Sh48 を入力して追加します。, これで面倒な日付処理にMomentが利用できるようになります。
var text = “お疲れモグー!\n今日も1日ご苦労さんモグ!\n明日もいい日にするモグよ!”;
var ss = SpreadsheetApp.openByUrl(‘スプレッドシートのURL’); sheet.appendRow([id, name, entrytime, state]); SlackのCustom Integrations > Outgoing WebHooks を入れる, Outgoing WebHooksのIntegration Settingsで以下の設定をする, 反応する文字列を指定する / Trigger Word(s)の設定 (出勤 / 退勤). dt: date_time, //時間 var text = “今日はどうだったモグか?お疲れ様モグ!”; var entrytime = e.dt daily = Number(daily); var lastRow = sheet.getLastRow(); if ( post_text.indexOf(‘出国’) != -1) { var ss = SpreadsheetApp.openByUrl(‘スプレッドシートのURL’);
//時間を連結してテキストで渡す { return(DateTime); var id = lastRow; if(result != 1)
var token = PropertiesService.getScriptProperties().getProperty(‘SLACK_ACCESS_TOKEN’); Tools -> Workflow Builder を開きます。, 連携するチャンネル名とショートカット名を入力します。ここで入力したshort nameが実際に表示される名前になります。, フォームは座席コードをリストから選択させたいので、Choose a question typeは「Select from a list」を選択してください。, Publishをクリックして有効化します。 //月を取得
function checkDate(){ icon_url: bot_icon 関数名は何でもよいですが、今回はfetchSlackHistory()関数としました。, このコードでは時刻処理のためにMomentライブラリを用いています。
Hatena.BookmarkWidget.load(); (function(d, s, id) { { var hours = (“0″+d.getHours()).slice(-2); はじめにこんにちは。TIG メディアユニットの久保です。 春の入門祭り #16 業務効率化・コミュニケーションツールSlack入門です。 コロナ影響により業界各社がテレワーク中心の業務体制を準備する中、コミュニケーションツールの需要が一気に高まってきました。 break; case 5:
{ break; case 3: var date_time = checkDate(); var postdata = { var app = SlackApp.create(token); var num = Math.floor(Math.random()*5+1 ); if ( post_text.indexOf(‘入国’) != -1) { var js, fjs = d.getElementsByTagName(s)[0]; var state; //出勤か退勤か //Slackのアクセストークン var result = getAttendance(postdata); うちのようなドベンチャーには、勤怠管理システムがない。 switch(num) if(state != 0) Hatena.BookmarkWidget.theme = "hatenadiary"; } var text = “お疲れさまモグ!今日の頑張りが必ず明日の為になってるモグよ!”;
function getAttendance(e){ }. 今回のプログラムではSlack APIから取得できるタイムスタンプの処理に利用しています。, 特殊なことはあまりありませんが、下方向に日時、横方向に社員が並びます。
おはようございます ← 現在時刻で出勤.
The following two tabs change content below. }, //ボットからのコメント
var verify_token = “Outgoing WebHooksのTOKENをここにコピペ”; case 1:
//勤怠システムに書き込む
var text = “おはようモグー!\n今日も1日頑張ろうモグ!”; ここまで進めると、ボタンに作ったフォームへのリンクが登場します。 フリーアドレスになってスプレッドシートで座席管理することになったので、Slackからスプレッドシートを更新できるようにしました, 2019年下半期ライトニングトーク大会とテックイノベーション賞の授賞式を開催しました!, 2019年上半期ライトニングトーク大会とテックイノベーション賞の授賞式を開催しました!, 【22新卒】11/24(火)自社開発のおもしろさを語るオンラインイベントを開催します!.
}. }. // データ入力 var text = “モグモグモグ!モグー”; 弊社ではコロナ禍のソーシャルディスタンス対策として、フリーアドレスを導入いたしました。 return (1); break; case 5:
state = 2;
本ブログに掲載のあるソフトウェアのダウンロード・記事内容の実行等(以下「ソフトウェアのダウンロード等」)は自己責任でお願い致します。, 2. function doPost(e) { case 1: }. }); 送信するとこんなかんじになります。 ワークフローの結果を集計する.
//Slackのkintaiチャンネルで入力したワードがこのイベントに入ってくる タイムカードでお困りの方はとりあえずでよければログとして残せます。, Slackの#Kintaiチャンネルで”出勤”/”退勤”と入力すると、その入力した時間がGoogleSpreadシートに名前と時間と出勤/退勤というステータスが保存されます。 break; case 6: slackワークフロー - オプション.
//Outgoing WebHooksを利用して、投稿に反応させる var message = e.parameter.user_name + “、” + text + error_text; var isError; if(state == 1){state = “出勤”;} Google Apps Scriptで書かれた、Slack上で動く勤怠管理Bot。 Slackで下記の様につぶやくと、みやもとさんがGoogle Spreadsheetに勤怠を記録してくれます。 会話例.
var daily = Utilities.formatDate(d,”JST”,”dd”); var sheet = ss.getSheets()[0]; //最終列の取得 userName: e.parameter.user_name, //ユーザー var day = dateT[d.getDay()]; //日付を取得
var state = e.state; var month = Utilities.formatDate(d,”JST”,”MM”); //曜日 Hatena.BookmarkWidget.width = 0; var d = new Date(); //今日の日付のデータを取得する(ddを使いシートの日付を取得) SLACK_ACCESS_TOKEN = “Slackの設定ページから取得する”; //出勤/退勤/時間をspledsheetに残す
var bot_name = “ボット名”;
//時間の取得(上の方で記載した関数) 勤怠管理bot - みやもとさん. var post_text = e.parameter.text;
error_text = “”; if(state == 0){isError = true;}, if(!isError) var text = “ご苦労さんです。by中の人”; return app.postMessage(e.parameter.channel_id, message, { if (d.getElementById(id)) return; fjs.parentNode.insertBefore(js, fjs); var error_text = “”; //投稿の認証 //時間 slackワークフロー. なお、フォームの選択肢に設定できる項目数が現在は最大20のようです。今回は座席が入りきらないのでフォームを島ごとに作成しています。, 冒頭に書いたように、doPost()でSlack Events APIから直接データを受け取ることができないため、時間トリガーでフェッチする関数を書いていきます。 var text = “モグーのすきなものは焼き芋モグ!”; //時
username: bot_name, 1行目には小さくSlackのユーザーIDが埋めてあります。 GASトリガーの作業. var text = “今日も子どもたちのみらいを想像して頑張ろうモグ”;