GAS ✖️ Slash Commands ✖️ Kintone
最近ほんとに良く耳にするKintone。
データの収集や整理、業務改善ツール、案件管理や勤怠管理・・・
柔軟性・拡張性・汎用性などを兼ね備えた優れものサービス。
ただ、ちょっとした作業なのに画面にログインしてスペース選択したりアプリ選択したりが意外と面倒。
普段Slackでメッセージのやりとりしたり、ToDo管理したりしている人からしたら、Slackでのやりとり中にSlackから離れて他のサービスでなんかする事すら面倒なこと、ありますよね。
そんな時には、ささっとSlackのコマンドを自作して、ささっとGASを書いちゃえば、全てSlack上で作業可能に!!!
本記事はこんな方におすすめ
・普段Slackをメインに利用している
・Kintone利用中
・GASを触った事がある
やりたい事
・Kintoneの画面を使わずにSlackでデータを取得(参照)
・Kintoneの画面を使わずにSlackからデータの更新
手順(3STEP)
たったの3Stepで完了です!
1. GASをちょっとだけ書く
2. SlackでSlash Commandsを作成する
3. SlackでSlash Commandsを叩く
1. GASをちょっとだけ書く
1) GASを作成
a. Kintone使うための設定
b. レコードデータ取得用GASを作成
function doPost(e) {
var param = e.parameter.text
var apps = {
YOUR_APPLICATION1: {
appid: xxx, // アプリID
token: 'xxx' // トークン
}
};
var kintoneManager = new KintoneManager.KintoneManager('xxx', apps); // サブドメイン
var query = '';
if (param) {
query = 'record_no = '+param;
}
var response = kintoneManager.search("YOUR_APPLICATION1", query);
var content = JSON.parse(response.getContentText());
var record = content.records;
var responseText = '';
for (var i = 0; i < record.length; i++) {
responseText += 'record no = ' + record[i].record_no.value + ' item = ' +record[i].item.value + ' status = ' + record[i].status.value + '\n';
}
response = { text: responseText };
Logger.log(e.parameter);
return ContentService.createTextOutput(JSON.stringify(response)).setMimeType(ContentService.MimeType.JSON);
}
c. レコード更新用GASを作成
function doPost(e) {
var param = e.parameter.text
var params = param.split(' ');
var recordNo = params[0];
var status = params[1];
var apps = {
YOUR_APPLICATION1: {
appid: xxx, // アプリID
token: 'xxx' // トークン
}
};
var str = '[';
str += Utilities.formatString('{"id": "%s", "record":', recordNo);
str += Utilities.formatString('{"status": { "value": "%s" }', status);
str += '}}]';
var kintoneManager = new KintoneManager.KintoneManager('xxx', apps); // サブドメイン
var records = JSON.parse(str);
var response = kintoneManager.update("YOUR_APPLICATION1", records);
var code = response.getResponseCode();
var responseText = "Update record_no = " + recordNo + " status = " + status;
response = { text: responseText};
Logger.log(e.parameter);
return ContentService.createTextOutput(JSON.stringify(response)).setMimeType(ContentService.MimeType.JSON);
}
2) 公開設定
公開 > ウェブアプリケーションとして導入
Who has access to the app: Anyone, even nonymous
3) 作成した(公開設定)した際のURLを保存しておく
2. SlackでSlash Commandsを作成する
1) https://api.slack.com/apps にアクセス
2) Create New App
App Name
任意のアプリ名を入力します。今回はKintoneとの連携用なのでKintoneにしました。
Development Slaack Workspace
今回作成したアプリ(コマンド)を適用するワークスペースを選択します。
3) Basic Information > Slash Commands
Slash Commandsを選択します。
4) Create New Commmand
コマンド名や利用方法などを入力していきます。
RequestURLはGASで公開設定したURL(※)を入力します。
※ 1. - 3) で保存したURL
レコード情報取得用
レコード更新用
5) Install App to Workspace
ワークスペースに作成したアプリをインストール
3. SlackでSlash Commandsを叩く
ここまできたら準備完了!
あとはSlackで作成したコマンドを叩くのみ。
1) /getkintonerecord・・・レコードを取得
2) /getkintonerecord 1・・・レコード番号を指定して取得
3) /updatekintonerecord 1 Updated
・・・レコード番号1を指定してstatusをUpdatedに更新
4) /getkintonerecord・・・更新後のレコードを取得
Slackでレコード情報を取得して、対象のレコードに対して更新。
これがわざわざKintone画面を開かなくてもOKです。
メンバー間で何らかのやりとり中に更新することで無駄な画面遷移はカットできます!
拡張性
上記ではレコードの取得と更新を簡単に作成しましが、Slash CommandsとGASの内容を拡張すれば登録や削除、GASからのGmail送信などもできちゃいます。
LINEにも送りたい!!!!って事もできます。
この記事が気に入ったらサポートをしてみませんか?