タイトル通り、通知BOTを作る手順をメモします。
WorkPlaceはまだまだ流行っていないので、資料が少ないですね!
チャットに通知するBOTも作りたかったのですが、権限がなく、権限のある方に頼むこともできなかったので、諦めましたw
ので、ここではフィード投稿までをゴールとさせていただきます。
作成手順
今回は「TODOリストに✓が付いたらWorkplaceに通知する」ものを作ってみましょう。
1. スプレッドシートを作成します
2. チェックがついたらアクションするコードを作成
メニューバーからツール
->スクリプトエディタ
var CHECK_COLUMN = "1"; // 納品通知カラム数(A)
/**
* アクティブセルのステータスをチェック
* トリガー: 編集時
*/
function getState() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var activeCell = sheet.getActiveCell();
var rowNum = activeCell.getRow();
// チェックBOXがアクティブ&&チェック付いてる時、通知する
if(activeCell.getColumn() == CHECK_COLUMN && activeCell.getValue()) {
// 同列の値も取得して通知します
Browser.msgBox('日付: ' + sheet.getRange('B' + rowNum).getValue() + '\nタスク: ' + sheet.getRange('C' + rowNum).getValue());
}
}
チェックが付いたか否かを調べるために、編集時にこのコードを実行させます。(トリガーの設定)
トリガーの設定は、スクリプトエディタ上部の「編集」⇒「現在のプロジェクトのトリガー」から行います。
トリガーの追加
で、以下のように条件を選びます。
その後アクセスを許可
までして完了です
3. WorkplaceでBOTアプリを作成
※BOTを作るには、そのグループの管理者権限が必要です。
BOTを使うグループのメニューからIntergrations
を開きます。
Create Publishing Bot
から作成
今回はテスト用に作ってみました。
Create New Access Token
からトークンを取得・メモします。
4. BOT通知する
スプレッドシートにもどって、先程メモしたトークンをコードに書きましょう。
// workplace
var FACEBOOK_API_URI = 'https://graph.facebook.com/v3.0';
var WORKPLACE_ACCESS_TOKEN = 'DQVxxxxxxx';
mainも編集します。
/**
* アクティブセルのステータスをチェック
* トリガー: 編集時
*/
function getState() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var activeCell = sheet.getActiveCell();
var rowNum = activeCell.getRow();
// チェックBOXがアクティブ&&チェック付いてる時、通知する
if(activeCell.getColumn() == CHECK_COLUMN && activeCell.getValue()) {
// 同列の値も取得して通知します
postWorkPlaceFeed('日付: ' + sheet.getRange('B' + rowNum).getValue() + '\nタスク: ' + sheet.getRange('C' + rowNum).getValue());
}
}
/**
* Workplaceに投稿する
*/
function postWorkPlaceFeed(text) {
UrlFetchApp.fetch(FACEBOOK_API_URI + '/group/feed?&access_token=' + WORKPLACE_ACCESS_TOKEN, {
method : 'POST',
contentType : 'application/json',
payload : JSON.stringify({
message: '# タスクが完了しましたBOT\n' + text, // 投稿内容です
formatting : 'MARKDOWN' // MarkDown使いたい場合はここにいれましょう
})
});
}
公開前に、認証を許可しなくてはなりません。
スクリプトエディタ上部の「編集」⇒「現在のプロジェクトのトリガー」からスクリプトを実行します。
認証したらチェックBOXにチェックを付けてみましょう。
Workplaceに投稿されたら成功です!
おわり
とても簡単だったと思います。
Workplaceは資料が少なかったので、メモをかねてまとめてみました。
チャットとFeedは、またBOTの役割が変わると思います。どう使っていくか運用次第ですね
お役に立てたら光栄です。
間違いなどありましたらご指摘お願いします!
参考サイト
今回の記事には関係のないのも混じっていますが、botを作ってくうちに参考になったものをまとめておきます。