slackとgoogle appsscript(js)で作る俺の秘書ハンズオン
TRANSCRIPT
TECHNOMOBILEGROUP
HEAD OFFICETOKUSHIMA development section
| 5floor Column Minamiaoyama,7-1-5,Minamiaoyama,Minato-ku,Tokyo 107-0062,Japan| 3floor Tokushimakenkohkagaku-center,Hiraishisumiyoshi,Kawauchi-cho,Tokushima-shi Tokushima 771-0134,Japan
SlackとGoogleAppsScript(JS)て作る俺の秘書ハンズオン
26
最近、ボットのニュースが多くありませんか?
36
Facebook が BotAPI を提供
LINE も公開
人工知能ボットが炎上
46
大きなトレンドになりつつあります。
56
大きなトレンドになりつつあります。
UI がシンプル開発コストが低い人工知能などのクラウド連携
66
まずはつくって、何に応用てきるか考えましょう。
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 76
下記のように「 @ 俺の秘書 おはよう」「 @ 俺の秘書 おやすみ」をメッセージするとシートに勤怠が記録され返事が届きます。
※ 簡単にプログラム説明します。
何を作るの?
8
Google のアカウントがあれば OK てす。
6
事前準備
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 96
この学びの対象者は?→JavaScript 初心者。ブラウザがあれば実行てきます。
教えないことは?→SlackAPI の細かい仕様
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 10
講師Gashfara,Inc. 代表 デジタルハリウッド大学院客員講師茂木健一[email protected] [email protected] http://facebook.com/mogikenhttp://www.slideshare.net/mogiken1
自己紹介[プロフィール /実績 ]もぎ・けんいち●青山学院大学大学院卒。 Gashfara,Inc. 代表。本社はハワイてすが出社したことなし。ホノルルマラソンには参加w青山学院大学大学院卒:エニックスてオリジナルゲーム制作 (Z80 アセンブラ CP/M) 、 SmallTalk て人工知能開発(企業買収)。
(株)東洋情報システム退社後、(株)エイチアイ、グランスフィア(株)、(株)ファッションウォーカー(えびもえの EC )など数社のベンチャー企業の立ち上げ・創業期に参画し、ガシュファラ・インクを US て起業。システム開発てはゲーム、 TOL (ツタヤオンライン)の立ち上げ。動画配信システム (USEN の Gate01 : Gyao の前進 ) 、電子マネーシステム( Bitcash )、 EC フルフィルメントシステムなど、多彩な分野を経験。 IT 関連教育ては 1998 年ころからデジハリの2.5階に間借りしながら教育コンテンツ作成( JIB 社)。 Brew 、 Java 、セキュリティーなどの講師として活躍。現在、(株) HUGG を設立し、スマホのカップル向け SNS サービス [HUGG] をグローバルに展開。㈱テクノモバイルにて技術顧問。㈱ SGP にてドローンのソフトウェア開発もしています。
【著書】BREW プログラミング実践バイブル [ 共著 ] (インプレス)、 PHP逆引き大全 516 の極意 [ 共著 ] (秀和システム)
11
成長を実現させるシステム”モバイルトータルソリューション”
Webシステム
1
スマホアプリ
2 ゲームアプリ
3
モバイルトータルソリューション
B2B2C
コンシューマ向けの大規模Web システムの開発からアプリ・ゲーム開発まてをマルチデバイスて対応
Technology 高い技術力 Market 市場ニーズとマッチ
大規模Webシステム
に強いJava,PHP
Strong1最先端技術・独自フレームワークて
効率的な開発
Strong2高トラフィック、
インフラネットワーク
に強い
Strong3 プライマリーベンダー、ヒアリング・要件定義に強いStrongⅠ
情報資産の活用最先端と
知見に強い
StrongⅡ
最先端のマルチデバイス
ウェアラブルに強い
StrongⅢ
Mashup Awards 5 年連続 受賞会社名 株式会社テクノモバイル
設 立 2008 年
資本金 2,500万円
代 表 播田 誠
従業員数 100名(グループ合計)
本社所在地 〒 107-0062
東京都港区南青山 7-1-5 コラム南青山
5F
開発室 〒 771-0134 徳島県徳島市川内町平石住吉 209-5 徳島健康科学総合センター 3F
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 126
Slack とは
・ 2014 年に正式に公開・社内などてコミュニケーションを行うツールてす。・ Slack はチャットが中心のサービスてす。・他サービスの連携が豊富。これが急速に普及した理由てす。
例)GitHub て pull リクエストを受けたったら Slack に通知Nagios が本番サーバの異常を検知したら Slack に通知IFTTT のレシピて、スマホが社内の WiFi に接続したら Slackに通知
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 136
GoogleAppsScript とは
・ Google スプレッドシートなどを操作するためのスクリプトてす。・ MS の Excel の VBA のような位置づけてす。・ JavaScript互換・プログラムを外部公開てきます。・クーロンのように定期実行可能てす。・ブラウザて共有てきるのて OS を問わずExcel よりも便利てす。
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 146
全体のシステム構成
Slackユーザ GoogleAppsScript
Google スプレッドシート
公開
勤怠記録
公開 URL を実行チャット
特別なサーバーを用意する必要がありません。
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 156
Bot 用の Slack チーム登録
https://slack.com/ にアクセスしてボット用のチームを作りましょう。
①
②チーム名
③
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 166
④アカウント登録
⑤チームの作成確認
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 176
⑥メールにパスワード設定が届く
⑦パスワード設定
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 186
スプレッドシートの作成
https://drive.google.com/drive/my-drive にアクセスしスプレッドシートを作成します。 Google アカウントが必要てす(事前準備)。
①
②適当に名前をつけて保存
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 196
Slack ライブラリの導入
スプレッドシートに Slack 連携のライブラリ を設定します。−参考: http://qiita.com/soundTricker/items/7bbd86425ae8d0641d50 API の説明は https://script.google.com/macros/library/versions/d/M3W5Ut3Q39AaIwLquryEPMwV62A3znfOO
①
②スクリプトのファイル名を入力して保存
※ ここにプログラムを作成します。
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 206
③
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 216
④使用するライブラリの識別子「 M3W5Ut3Q39AaIwLquryEPMwV62A3znfOO 」を入力して「選択」します
⑤見つかると一覧に表示されるのて最新バージョンを指定して保存
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 226
SlackAPI のトークンを作成
https://api.slack.com/web にアクセスし API にアクセスするためのトークンを作成。 OAuth が正式な認証 API てすが難しいのて省略。
①ここから作成
②
③パスワード入力
④トークンが作成されます
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 236
投稿の実行
次頁のプログラムをスクリプトエディタに貼り付け、トークン部分を自分の値に変更し、保存してから実行します。実行する時はプルダウンからpostMessage を選択し再生ボタンを押してください。認証ダイアログが表示される時は認証してください。
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 246
//Slack のトークンを設定。ひとそれぞれ違う。var token ="";//投稿テストfunction postMessage() {
//slackApp インスタンスの取得 . このライブラリーを使っている。 https://github.com/soundTricker/SlackApp var slackApp = SlackApp.create(token);
// 最初の channel id を取得 .普通は #general var channelId = slackApp.channelsList().channels[0].id;
//投稿 slackApp.postMessage(channelId, " ハローワールド ", { username : " 最初のボット " });}
プログラムはここからダウンロード https://goo.gl/ufTMbL
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 256
Slack のチームを開いて下記のように投稿されていれば API 連携は OK てす。
※ 簡単にプログラムの解説をします。
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 266
GoogleAppsScript を公開する
Slack ボットにメッセージが届いた時に GoogleAppsScript(GAS) を実行するため GAS を公開します。スクリプトエディタて設定します。
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 276
必ず「匿名ユーザーを含む」
URL が表示されるのてメモこの URL を Slack から実行します。
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 286
Slack から GAS の公開 URL を実行するように設定
https://my.slack.com/services/new/outgoing-webhook にアクセスして設定。
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 296
ボットの設定
反応するチャンネル
反応するキーワード
GAS の公開 URL
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 306
ボットの処理プログラムを作成
次頁のプログラムをスクリプトエディタに貼り付け、 .openById("xx")部分を自分のシート id を登録し、保存してから、再度バージョンを上げて公開してください。バージョンを上げないと古いプログラムが動きます。認証ダイアログが表示される時は認証してください。
新規作成て公開するとバージョンが上がる
ここがシートの ID
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 316
//Slack からの Post て動く処理。 Web に公開しているとこれが動く。function doPost(e) { var mes = " お疲れ様てす。 ";// 秘書のメッセージ var type = "";// 出社、退社の区別 //e に post データが入ってる。 // 出社をチェック if (e.parameter.text.match(/ おはよう /)) { type = " 出社 "; mes = " おはようございます。きょうもお仕事頑張りましょう! "; } // 退社をチェック if (e.parameter.text.match(/ さようなら /)) { type = " 退社 "; mes = "今日もお仕事お疲れ様てした。 "; }
//slackApp インスタンスの取得 var slackApp = SlackApp.create(token); // 勤怠をシートに記録 // 勤怠を設定している時だけ if(type != ""){ //id からシートをセット。シートの URL の /d/****/部分。 idじゃないと doPost からはアクセス出来ない。自分の id に変更 var sheet = SpreadsheetApp.openById("").getSheetByName(" シート 1"); //名前 , 勤怠、日時を最終行にセット sheet.appendRow([e.parameter.user_name,type,new Date()]); }
// メッセージを返す slackApp.chatPostMessage(e.parameter.channel_id,e.parameter.user_name+" さん。 "+mes, { username : " あなたの秘書 " }); return null;}
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 326
下記のように「 @ 俺の秘書 おはよう」「 @ 俺の秘書 おやすみ」をメッセージするとシートに勤怠が記録され返事が届きます。
※ 簡単にプログラム説明します。
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 336
・社内業務の効率化。勤怠管理。バッチ処理の完了通知・ CS の入り口としてのシステム提案・人工知能との連携・ EC てのお勧め商品。キーワード検索てはなく。。。音声認識てもなく。。
適用事例(経営者・営業担当の方に)