プロジェクト(金岡グループ)
第 1 回
金岡 晃
プロジェクトの全体像
シラバスより
実践的なテーマに基づく、情報システム開発の演習を通して、目標設定、計 画、実行、評価の基本的な流れを習得する。
情報システム開発の演習を通して、ネットワーク、データベース、
JavaScript、PHPなどのWebサービス開発用の言語についての基礎を習得す る。
自ら目標設定し、開発工程を管理し、グループメンバと協力して一つの目標 を達成する経験を通して、プロジェクトの推進方法を理解し、メンバーと協 力してプロジェクトに参画できるようになる。
授業の目的と学習成果
プロジェクト
1
金岡プロジェクトテーマ
配布資料より
テーマC 独自チャットボット作成
コミュニケーションツールSlack上で動き回るチャットボットシステムを 作成する。シェルスクリプトやJavaScriptなどのスクリプト言語と、外 部APIやデータセットの活用により、チームごとに特色のあるチャット ボットの実現を試みる。
Slack?
チャットボット?
外部API?データセット?
このあたりを今日解説します
プロジェクト
2
金岡プロジェクトテーマ
配布資料より
テーマC 独自チャットボット作成
コミュニケーションツールSlack上で動き回るチャットボットシステムを 作成する。シェルスクリプトやJavaScriptなどのスクリプト言語と、外 部APIやデータセットの活用により、チームごとに特色のあるチャット ボットの実現を試みる。
技術要素
なんらかの言語を使ったプログラミング 外部リソースの活用
HTTPによるアクセス
プロジェクト
3
スケジュール
内容
第1回 プロジェクトの概要説明、基礎知識の学習(1)
第2回 基礎知識の学習(2)、Botデザイン 第3回 Botデザインまとめ、発表
第4回 開発(1)
第5回 開発(2)
第6回 開発(3)
第7回 成果発表会
プロジェクト
4
成果報告の形式、提出物
成果報告の形式
• プレゼンテーション
• 狙い、利用した技術、工夫した点や改善した点、残課題
• ライブデモ
プロジェクト
5
• 出席状況<プロジェクト参加状況>
• レポート(個人ごと)<授業態度、実験成果>
• プレゼンテーション(チーム)<授業態度、実験成果>
• 成果物(チーム)<実験成果>
評価
シラバスより
原則として、プロジェクト参加状況50%、授業態度25%、実験成果25%
として評価する。プロジェクトの進め方、成果・作品等は改善点などを 講評する。
金岡プロジェクトでの評価
独自性 面白さ ソースコードの質
プロジェクト
6
金岡プロジェクトテーマ
配布資料より
テーマC 独自チャットボット作成
コミュニケーションツールSlack上で動き回るチャットボットシステムを 作成する。シェルスクリプトやJavaScriptなどのスクリプト言語と、外 部APIやデータセットの活用により、チームごとに特色のあるチャット ボットの実現を試みる。
Slack?
チャットボット?
外部API?データセット?
このあたりを今日解説します
プロジェクト
7
SLACK とは
プロジェクト 8
Slack とは
Slack(スラック)
コミュニケーションツール。グループでのチャットを中心として、ユー ザ間のダイレクトメッセージやトピックごとのチャットなどが可能な Webサービス
https://slack.com/
類似・近いサービス?
プロジェクト
9
ブラウザから Slackにログイン したところ
プロジェクト
10
Slack のポイント(1)
チームごとに作成
• チームごとにSlackの場所を作成可能
• チームには複数のユーザが参加可能(ユーザ数無制限)
• チームごとに独自URLが与えられる
• たとえば金岡研Slackの場合は https://toho-klab.slack.com/
• 上記の”toho-klab”がチーム名
• チームのドメインに使われる名称は重複してはいけない
プロジェクト
11
Slack のポイント(2)
チャット
• チーム全体
• ユーザ同士(ダイレクトメッセージ)
• チャンネル
• チームのうち特定のユーザが参加した チャットルーム
• 他のチームユーザへ公開するものと、
非公開にするもの(プライベートチャ ンネル)がある
• チャンネル名のあたまには「#」が付 く
• 厳密にはチーム全体のチャットも
#general というチャンネルになる
プロジェクト
12
Slack のポイント(3)
ファイル共有
• ドラックアンド ドロップで簡単 に可能
プロジェクト
13
Slack のポイント(4)
リンクの貼り付け
• URLを貼り付け ると、そのタイ トルや要約、サ ムネイル画像な どが出る
プロジェクト
14
Slack のポイント(5)
スニペット
• 「切れ端」とい う意味
• ソースコードの 一部などを貼り 付けて共有可能
プロジェクト
15
Slack のポイント(6)
対応プラットフォームの充実
• ブラウザから利用可能
• 専用アプリケーション
• デスクトップアプリ:Windows OS, Mac OS X, Linux (Ubuntu, Fedora)
• モバイルアプリ:iOS (iPhone, iPad), Android OS, Windows Mobile
プロジェクト
16
Slack のポイント(7)
連動アプリケーション
• 連動するアプリ ケーションが非 常に多い
プロジェクト
17
連動アプリ: Google Hangout
プロジェクト
18
連動アプリ: Google カレンダー
プロジェクト
19
コマンド:リマインド
プロジェクト
20
コマンド:リマインド
プロジェクト
21
Slack チームを作ろう
プロジェクト
22
まずSlackのページにブラウザでアクセス https://slack.com/
チームの 代表者1人が 作業しよう
Slack チームを作ろう
プロジェクト
23
まずSlackのページにブラウザでアクセス https://slack.com/
ここにメールアド レスを入力して
「Get Started」ボタ ンを押す
Slack チームを作ろう
プロジェクト
24
Slack チームを作ろう
プロジェクト
25
ページの下に移動する
「ワークスペース を新規作成」
を押す
Slack チームを作ろう
プロジェクト 26
Slack チームを作ろう
プロジェクト 27
さきほど入力したメールアドレスに
6桁のコードが含まれたメールが届いている のでそれを入力
Slack チームを作ろう
プロジェクト 28
名前(氏名)とユーザア カウント名を入れて、
「パスワードへ進む」を 押す
Slack チームを作ろう
プロジェクト 29
パスワードを入力し て「ワークスペース 情報へ進む」を押す
Slack チームを作ろう
プロジェクト 30
こんな感じで入力 してください
Slack チームを作ろう
プロジェクト 31
グループ名を入力
※ここは好きな名前を付 けられます
Slack チームを作ろう
プロジェクト 32
グループ名に従ったURL の決定
※ここの名称はすでに誰 かに使われてたらダメ
このURL、メモしてお きましょう。
Slack チームを作ろう
プロジェクト 33
同意しますか?と聞か れているので同意する なら「同意します」を 押す
Slack チームを作ろう
プロジェクト 34
ここで自分以外のユー ザを招待(Invite)でき るので、他のメンバを 招待しましょう。
入力されたメールアド レスにメールが届きま すので確認しましょう
Slack チームを作ろう
プロジェクト 35
いろいろと SLACK をいじってみよう
プロジェクト 36
いろいろいじってみよう
プロジェクト
37
まずはみんなでチャットしよう
#general で入力すると、みんなにメッセージが届きます 個人同士でメッセージをやりとりしてみよう
DIRECT MESSAGESでユーザ名を選んで、そこで入力すると、そのユーザ にメッセージが届きます。
これは他ユーザには見えません。
いろいろいじってみよう
プロジェクト
38
プロフィール画像の変更
このマークをクリック
いろいろいじってみよう
プロジェクト 39
“プロフィール&アカウント”を クリック
プロフィール画像の変更
いろいろいじってみよう
プロジェクト 40
プロフィール画像の変更
“プロフィールを編集する”を クリック
いろいろいじってみよう
プロジェクト 41
プロフィール画像の変更
アイコン画像の上に
マウスカーソルを持ってくる
いろいろいじってみよう
プロジェクト 42
プロフィール画像の変更
クリックすると
ファイルを選択する画面になる ので画像ファイルを選択
いろいろいじってみよう
プロジェクト 43
プロフィール画像の変更
“プロフィール写真を保存”で 保存
いろいろいじってみよう
プロジェクト 44
見た目を変えてみよう
いろいろな ところの色 を変更可能
いろいろいじってみよう
プロジェクト
45
見た目を変えてみよう
このマークをクリック
いろいろいじってみよう
プロジェクト 46
“環境設定”をクリック 見た目を変えてみよう
いろいろいじってみよう
プロジェクト 47
“サイドバー”をクリック 見た目を変えてみよう
いろいろいじってみよう
プロジェクト 48
見た目を変えてみよう
スクロールバーを 下げていくと、
いくつかのパター ンが選択できる
いろいろいじってみよう
プロジェクト 49
見た目を変えてみよう
細かく色を指定し たい場合はここを クリック
いろいろいじってみよう
プロジェクト 50
“Slackをカスタマイズ”を クリック
絵文字を登録してみよう
いろいろいじってみよう
プロジェクト 51
絵文字を登録してみよう
その絵文字を 出すときに入 力する文字列 を入力
出力される画 像ファイルを 選択
いろいろいじってみよう
プロジェクト 52
絵文字を登録してみよう
画像ファイルは
128ピクセルx128ピクセル までなので注意
いろいろいじってみよう
プロジェクト 53
絵文字を登録してみよう
その他の Tips
プロジェクト 54
引用
入力の最初を”> “で始めると引用の表記になる
装飾系
https://seleck.cc/416
その他の Tips
プロジェクト 55
Pin
「お気に入り」のように使える
Post
スニペットのようなものを、複数ユーザで共同編集できる
チャットボット
プロジェクト 56
チャットボット
プロジェクト
57
ボット
チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる
プログラムのこと。特に人間に代わって作業を行うものを指すことが 多い。マルウェアの用語としての一面も持つ。
SiriやContanaもボットの一種
さまざまなプラットフォームで利用
プロジェクト
58
LINE
自動的に投稿がされる LINE NEWS や、その他企業や芸能人アカウン トなど
• https://matome.naver.jp/odai/2135855964060612201
• http://www.appgaku.com/iphone-
pickup/2013/08/20130806006767.html その他
Skype 、 Facebook Messenger など
どんなボットがあるか
• 計算してくれる
• ランダムに画像投稿
• StackOverflow
• 猫ボット
• 電車の遅延連絡
プロジェクト
59
代表的な事例
• 天気
• ニュース
• スケジュール
• タスク管理
• レストラン・ホテル予約
変わり種
Slack ボット:天気
プロジェクト
60
Weather App
“/weather 都市名 ” で天気を表示してくれる
Slack ボット:ニュース
プロジェクト
61
RSS
各サイトの RSS をチェックして、新着があったらつぶやく
Slack ボット:スケジュール
プロジェクト
62
Googleカレンダー
Google カレンダーと同期して、予定が入力されたときや、週初め
でのアナウンス、予定直前でのアナウンスなどがされる
Slack ボット:変わり種
プロジェクト
63
mathbot
http://plus.appgiga.jp/masatolan/2015/07/02/56363/
Slack ボット:変わり種
プロジェクト
64
猫ボット
http://www.e-agency.co.jp/column/slackbot_ai.html
簡単なボットならすぐできる
プロジェクト 65
“Slackをカスタマイズ”を クリック
Slackbotへの登録
簡単なボットならすぐできる
プロジェクト 66
Slackbotへの登録
“Slackbot”タ ブをクリック
簡単なボットならすぐできる
プロジェクト 67
Slackbotへの登録
Botが反応す るキーワード を入力
反応するコメ ントを入力
簡単なボットならすぐできる
プロジェクト 68
Slackbotへの登録
簡単なボットならすぐできる
プロジェクト 69
来週は
• より本格的な Slackbot を作るには
• このプロジェクトで Slackbot を作るための環境説明
• どんどん先に進みたい人は、以下のキーワードで調べ物をしておく といいかも
– “Node.js” と“ Slack ボット ”
• JavaScript での Slack ボット開発 – “ Hubot ”と“ Slack ボット”
• Python での Slack ボット開発
• 次回資料も早晩アップするのでそちらも参照しておいてください
プロジェクト
70