33
TECHNOMOBILE GROUP HEAD OFFICE TOKUSHIMA development section | 5floor Column Minamiaoyama,7-1-5,Minamiaoyama,Minato-ku,Tokyo 107-0062,Japan | 3floor Tokushimakenkohkagaku-center,Hiraishisumiyoshi,Kawauchi-cho,Tokushima-shi Tokushi Slack と GoogleAppsScript(JS) ととととととととととととと

Slackとgoogle appsscript(js)で作る俺の秘書ハンズオン

  • Upload
    -

  • View
    1.066

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Slackとgoogle appsscript(js)で作る俺の秘書ハンズオン

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)て作る俺の秘書ハンズオン

Page 2: Slackとgoogle appsscript(js)で作る俺の秘書ハンズオン

26

最近、ボットのニュースが多くありませんか?

Page 3: Slackとgoogle appsscript(js)で作る俺の秘書ハンズオン

36

Facebook が BotAPI を提供

LINE も公開

人工知能ボットが炎上

Page 4: Slackとgoogle appsscript(js)で作る俺の秘書ハンズオン

46

大きなトレンドになりつつあります。

Page 5: Slackとgoogle appsscript(js)で作る俺の秘書ハンズオン

56

大きなトレンドになりつつあります。

UI がシンプル開発コストが低い人工知能などのクラウド連携

Page 6: Slackとgoogle appsscript(js)で作る俺の秘書ハンズオン

66

まずはつくって、何に応用てきるか考えましょう。

Page 7: Slackとgoogle appsscript(js)で作る俺の秘書ハンズオン

COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 76

下記のように「 @ 俺の秘書 おはよう」「 @ 俺の秘書 おやすみ」をメッセージするとシートに勤怠が記録され返事が届きます。

※ 簡単にプログラム説明します。

何を作るの?

Page 8: Slackとgoogle appsscript(js)で作る俺の秘書ハンズオン

8

Google のアカウントがあれば OK てす。

事前準備

Page 9: Slackとgoogle appsscript(js)で作る俺の秘書ハンズオン

COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 96

この学びの対象者は?→JavaScript 初心者。ブラウザがあれば実行てきます。

教えないことは?→SlackAPI の細かい仕様

Page 10: Slackとgoogle appsscript(js)で作る俺の秘書ハンズオン

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 の極意 [ 共著 ] (秀和システム)

Page 11: Slackとgoogle appsscript(js)で作る俺の秘書ハンズオン

11

成長を実現させるシステム”モバイルトータルソリューション”

Webシステム

スマホアプリ

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

Page 12: Slackとgoogle appsscript(js)で作る俺の秘書ハンズオン

COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 126

Slack とは

・ 2014 年に正式に公開・社内などてコミュニケーションを行うツールてす。・ Slack はチャットが中心のサービスてす。・他サービスの連携が豊富。これが急速に普及した理由てす。

例)GitHub て pull リクエストを受けたったら Slack に通知Nagios が本番サーバの異常を検知したら Slack に通知IFTTT のレシピて、スマホが社内の WiFi に接続したら Slackに通知

Page 13: Slackとgoogle appsscript(js)で作る俺の秘書ハンズオン

COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 136

GoogleAppsScript とは

・ Google スプレッドシートなどを操作するためのスクリプトてす。・ MS の Excel の VBA のような位置づけてす。・ JavaScript互換・プログラムを外部公開てきます。・クーロンのように定期実行可能てす。・ブラウザて共有てきるのて OS を問わずExcel よりも便利てす。

Page 14: Slackとgoogle appsscript(js)で作る俺の秘書ハンズオン

COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 146

全体のシステム構成

Slackユーザ GoogleAppsScript

Google スプレッドシート

公開

勤怠記録

公開 URL を実行チャット

特別なサーバーを用意する必要がありません。

Page 15: Slackとgoogle appsscript(js)で作る俺の秘書ハンズオン

COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 156

Bot 用の Slack チーム登録

https://slack.com/ にアクセスしてボット用のチームを作りましょう。

②チーム名

Page 16: Slackとgoogle appsscript(js)で作る俺の秘書ハンズオン

COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 166

④アカウント登録

⑤チームの作成確認

Page 17: Slackとgoogle appsscript(js)で作る俺の秘書ハンズオン

COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 176

⑥メールにパスワード設定が届く

⑦パスワード設定

Page 18: Slackとgoogle appsscript(js)で作る俺の秘書ハンズオン

COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 186

スプレッドシートの作成

https://drive.google.com/drive/my-drive にアクセスしスプレッドシートを作成します。 Google アカウントが必要てす(事前準備)。

②適当に名前をつけて保存

Page 19: Slackとgoogle appsscript(js)で作る俺の秘書ハンズオン

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   

②スクリプトのファイル名を入力して保存

※ ここにプログラムを作成します。

Page 20: Slackとgoogle appsscript(js)で作る俺の秘書ハンズオン

COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 206

Page 21: Slackとgoogle appsscript(js)で作る俺の秘書ハンズオン

COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 216

④使用するライブラリの識別子「 M3W5Ut3Q39AaIwLquryEPMwV62A3znfOO 」を入力して「選択」します

⑤見つかると一覧に表示されるのて最新バージョンを指定して保存

Page 22: Slackとgoogle appsscript(js)で作る俺の秘書ハンズオン

COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 226

SlackAPI のトークンを作成

https://api.slack.com/web  にアクセスし API にアクセスするためのトークンを作成。 OAuth が正式な認証 API てすが難しいのて省略。

①ここから作成

③パスワード入力

④トークンが作成されます

Page 23: Slackとgoogle appsscript(js)で作る俺の秘書ハンズオン

COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 236

投稿の実行

次頁のプログラムをスクリプトエディタに貼り付け、トークン部分を自分の値に変更し、保存してから実行します。実行する時はプルダウンからpostMessage を選択し再生ボタンを押してください。認証ダイアログが表示される時は認証してください。

Page 24: Slackとgoogle appsscript(js)で作る俺の秘書ハンズオン

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 

Page 25: Slackとgoogle appsscript(js)で作る俺の秘書ハンズオン

COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 256

Slack のチームを開いて下記のように投稿されていれば API 連携は OK てす。

※ 簡単にプログラムの解説をします。

Page 26: Slackとgoogle appsscript(js)で作る俺の秘書ハンズオン

COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 266

GoogleAppsScript を公開する

Slack ボットにメッセージが届いた時に GoogleAppsScript(GAS) を実行するため GAS を公開します。スクリプトエディタて設定します。

Page 27: Slackとgoogle appsscript(js)で作る俺の秘書ハンズオン

COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 276

必ず「匿名ユーザーを含む」

URL が表示されるのてメモこの URL を Slack から実行します。

Page 28: Slackとgoogle appsscript(js)で作る俺の秘書ハンズオン

COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 286

Slack から GAS の公開 URL を実行するように設定

https://my.slack.com/services/new/outgoing-webhook にアクセスして設定。

Page 29: Slackとgoogle appsscript(js)で作る俺の秘書ハンズオン

COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 296

ボットの設定

反応するチャンネル

反応するキーワード

GAS の公開 URL

Page 30: Slackとgoogle appsscript(js)で作る俺の秘書ハンズオン

COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 306

ボットの処理プログラムを作成

次頁のプログラムをスクリプトエディタに貼り付け、 .openById("xx")部分を自分のシート id を登録し、保存してから、再度バージョンを上げて公開してください。バージョンを上げないと古いプログラムが動きます。認証ダイアログが表示される時は認証してください。

新規作成て公開するとバージョンが上がる

ここがシートの ID

Page 31: Slackとgoogle appsscript(js)で作る俺の秘書ハンズオン

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;}

Page 32: Slackとgoogle appsscript(js)で作る俺の秘書ハンズオン

COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 326

下記のように「 @ 俺の秘書 おはよう」「 @ 俺の秘書 おやすみ」をメッセージするとシートに勤怠が記録され返事が届きます。

※ 簡単にプログラム説明します。

Page 33: Slackとgoogle appsscript(js)で作る俺の秘書ハンズオン

COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 336

・社内業務の効率化。勤怠管理。バッチ処理の完了通知・ CS の入り口としてのシステム提案・人工知能との連携・ EC てのお勧め商品。キーワード検索てはなく。。。音声認識てもなく。。

適用事例(経営者・営業担当の方に)