Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
自分専用のslack team & botを作って
圧倒的進捗を得る
A(izu)LT 会津編 0x09 @flying_hato_bus 飛ばすはとバス
自己紹介
氏名 : 飛ばすはとバス ( @flying_hato_bus )
世代 : s124 github : https://github.com/hatobus
ハードウェアが好き,変なものが好き.
今年の夏休みにアメリカのシリコンバレ...
なんでSlackbot作ったの
貧乏暇なしということで色々やることが
たくさんある(授業, バイト, ゴミ出し, 課題)
これ,Google calenderに登録してもいいけど,肝心の時に見てなくて困る.
Slackだったら結構見るし,通知飛...
と言うわけで自分の秘書的なのを作りたくなった
名前 … Hatsonくん
(某IBMのあれとグラハム ベルの助手であるワトソンをもじった)
内容 … 授業の予定とかバイトでやることとか,課題の管理
天気,ゴミ出しの日を確認できる.
仕様
サーバー Raspberry pi 3
言語,使用ライブラリ Python 3.5.4 + slackbot
使用API … Open weather map, google calender API
とりあえず動かそう
とりあえず動かしてみる.Slack team を作り,SlackのAPIキーとかを取得して,pythonファイルを作
っていく.
何個かファイルを作る必要があるが,ディレクトリ構造などは上の図を参照していただきたい.
設定フ...
この調子でガンガン機能を積んでいく
from slackbot.bot import respond_to
@botname: で反応するデコーダ
from slackbot.bot import listen_to
チャネル内発言で反応するデ...
今後使っていくメソッド
@respond_to('string')
メンションがつけられたものに返事をする
‘string’の部分は正規表現で反応できる.
今後使っていくメソッド
@listen_to('string')
botにメンションをつけないで発言した時に反応する.
これも正規表現に対応.
今後使っていくメソッド
message.reply('string')
@発言者名: string でメッセージを送信.リプライを送ってくれる
message.send('string')
string を送信
コードの例
天気について教えてもらえるようにする
こういうのにもってこいなのが多分お天気の情報.
スマホとかで手軽に調べることができるけど,そういうのも面倒な時は
Hatsonくんに教えてもらえるようにする.
使用したAPI : Open weather ...
要件
「 〇〇 の天気」とチャンネルに書くと,APIを叩いてお天気情報を教えてくれる
Open weather mapのAPIをpythonで叩いて,jsonファイルをスクレイピングして情報取得.
正規表現が使えるので 都市名の取得は「 (. ...
実装
デモ
作ってわかったこと
これくらいじゃ†圧倒的進捗†は得られそうにないので,目下開発を進めていくしかない.
TODOとしてはGoogleカレンダーと連携したい. -> やってみたらAPI周りで詰んだ webの知識のNASA
ゴミの日とかにメンション...
参考文献等
PythonのslackbotライブラリでSlackボットを作る
Slack API 推奨Tokenについて
Slackbotライブラリの公式レポジトリ
Slide shareの投稿
( https://qiita.com/suke...
Alt2017 1111 hatobus
Alt2017 1111 hatobus
Alt2017 1111 hatobus
Alt2017 1111 hatobus
Alt2017 1111 hatobus
Upcoming SlideShare
Loading in …5
×

Alt2017 1111 hatobus

634 views

Published on

Aizu LT 2017 0x09

Published in: Engineering
  • Be the first to comment

Alt2017 1111 hatobus

  1. 1. 自分専用のslack team & botを作って 圧倒的進捗を得る A(izu)LT 会津編 0x09 @flying_hato_bus 飛ばすはとバス
  2. 2. 自己紹介 氏名 : 飛ばすはとバス ( @flying_hato_bus ) 世代 : s124 github : https://github.com/hatobus ハードウェアが好き,変なものが好き. 今年の夏休みにアメリカのシリコンバレーに行って来ました. 作った主なもの -> 自動で動く赤べこ, レーザーカッターで暗記パン 黄金比を手軽に見つけられる定規
  3. 3. なんでSlackbot作ったの 貧乏暇なしということで色々やることが たくさんある(授業, バイト, ゴミ出し, 課題) これ,Google calenderに登録してもいいけど,肝心の時に見てなくて困る. Slackだったら結構見るし,通知飛ばしてくれるからよくない?
  4. 4. と言うわけで自分の秘書的なのを作りたくなった 名前 … Hatsonくん (某IBMのあれとグラハム ベルの助手であるワトソンをもじった) 内容 … 授業の予定とかバイトでやることとか,課題の管理 天気,ゴミ出しの日を確認できる.
  5. 5. 仕様 サーバー Raspberry pi 3 言語,使用ライブラリ Python 3.5.4 + slackbot 使用API … Open weather map, google calender API
  6. 6. とりあえず動かそう とりあえず動かしてみる.Slack team を作り,SlackのAPIキーとかを取得して,pythonファイルを作 っていく. 何個かファイルを作る必要があるが,ディレクトリ構造などは上の図を参照していただきたい. 設定ファイルのslackbot_settings.py にAPIキーとデフォルトのリプライを設定して,run.pyにちょっと内容を書 くだけでなんとかなる
  7. 7. この調子でガンガン機能を積んでいく from slackbot.bot import respond_to @botname: で反応するデコーダ from slackbot.bot import listen_to チャネル内発言で反応するデコーダ from slackbot.bot import default_reply 該当する応答がない場合に反応するデコーダ
  8. 8. 今後使っていくメソッド @respond_to('string') メンションがつけられたものに返事をする ‘string’の部分は正規表現で反応できる.
  9. 9. 今後使っていくメソッド @listen_to('string') botにメンションをつけないで発言した時に反応する. これも正規表現に対応.
  10. 10. 今後使っていくメソッド message.reply('string') @発言者名: string でメッセージを送信.リプライを送ってくれる message.send('string') string を送信
  11. 11. コードの例
  12. 12. 天気について教えてもらえるようにする こういうのにもってこいなのが多分お天気の情報. スマホとかで手軽に調べることができるけど,そういうのも面倒な時は Hatsonくんに教えてもらえるようにする. 使用したAPI : Open weather map ( https://openweathermap.org/ )
  13. 13. 要件 「 〇〇 の天気」とチャンネルに書くと,APIを叩いてお天気情報を教えてくれる Open weather mapのAPIをpythonで叩いて,jsonファイルをスクレイピングして情報取得. 正規表現が使えるので 都市名の取得は「 (. * ) 」でできる. 場所を都市名と緯度経度で指定できたが,今回はpythonのGeocoderを使い,緯度経度で 天気を取得できるようにした.
  14. 14. 実装
  15. 15. デモ
  16. 16. 作ってわかったこと これくらいじゃ†圧倒的進捗†は得られそうにないので,目下開発を進めていくしかない. TODOとしてはGoogleカレンダーと連携したい. -> やってみたらAPI周りで詰んだ webの知識のNASA ゴミの日とかにメンション飛ばしてくれたらいいかなって感じ
  17. 17. 参考文献等 PythonのslackbotライブラリでSlackボットを作る Slack API 推奨Tokenについて Slackbotライブラリの公式レポジトリ Slide shareの投稿 ( https://qiita.com/sukesuke/items/1ac92251def87357fdf6 ) ( https://qiita.com/ykhirao/items/3b19ee6a1458cfb4ba21 ) ( https://github.com/lins05/slackbot ) ( https://www.slideshare.net/BusHato/alt2017-1111-81874535 )

×