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

Post on 16-Apr-2017

1.070 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

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 てす。

事前準備

COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 96

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

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

COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 10

講師Gashfara,Inc. 代表  デジタルハリウッド大学院客員講師茂木健一mogi@gashfara.com kenichi.mogi@tcmobile.jp 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システム

スマホアプリ

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 てのお勧め商品。キーワード検索てはなく。。。音声認識てもなく。。

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

top related