チャンネル指定してSlack投稿を取得
文字をざっくり検索して指定ワードがあったら
Googleスプレッドシートに保存する勤怠記録したいメモ
作業流れ
-
認証用スクリプト記載したGAS準備
-
SlackAPP構築とGASでSubscription認証
-
スプレッドシートにデータ保存GASコーディング(いまここ
)
APPの導通をチェック
下記のコードをGASに記載し、SlackAPPをインストールしたチャンネル投稿
GASを「公開>ウェブアプリケーションとして導入」を行う、いろいろ聞かれるがOKな感じですすめる
下記画像の赤枠はだれでも実行可能が必要
function doPost(e) {
//シート1はシート名に応じて変更
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('シート1');
//送られてきたトークンが正しければ勤怠を記録する
//parameterは必要に応じて変更してください
var datetime = new Date();
var date = (datetime.getFullYear() + '/' + ('0' + (datetime.getMonth() + 1)).slice(-2) + '/' + ('0' + datetime.getDate()).slice(-2))
var time = (('0' + datetime.getHours()).slice(-2) + ':' + ('0' + datetime.getMinutes()).slice(-2));
var user_name = e.parameter.user_name;
var trigger_word = e.parameter.trigger_word;
var text = e.parameter.text;
//追加する配列を作成
array = [date,time,user_name,trigger_word,text];
//シートの最下行に配列を記述
sheet.appendRow(array);
return
}
上記のように日時だけ表示されると思われる
今後は、SlackAPPに権限を付与してユーザー名やチャンネル名などを表示できるようにする必要がある
権限の公式サンプル
リアクション追加
https://api.slack.com/methods/reactions.add/test
作成したAPPにをチャンネルのメンバーに追加しないと動作しないでした
ユーザー情報の取得
https://api.slack.com/methods/users.info/test
チャンネル情報の取得
https://api.slack.com/methods/conversations.info
参考サイト
google apps script でシートがなかったら作成してシートのオブジェクトを返す。
https://qiita.com/crawd4274/items/13120429cb3328e8ace2
【初心者向けGAS】スプレッドシートのセル・セル範囲とその値を取得する方法
https://tonari-it.com/gas-spreadsheet-range-value-values/