Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Slackであそぼ!!
Search
Keisuke Mori
June 14, 2019
Technology
0
130
Slackであそぼ!!
KFIE第一回LT会
コードはこちら→
https://gist.github.com/moririn772/de452d19f7c91bfce902e4d8201c16fc
Keisuke Mori
June 14, 2019
Tweet
Share
More Decks by Keisuke Mori
See All by Keisuke Mori
AWSを使う上で意識しておきたい、クラウドセキュリティ超入門(駆け足版)
kkmory
1
410
[JAWS-SG#02] 個人開発やハッカソンで役立つ、便利APIのつくりかた
kkmory
0
140
rubyonjets_with_aws_for_research
kkmory
0
580
AWSで動画変換&配信基盤を作った話
kkmory
0
250
Git-study-Hackz-treasure
kkmory
1
270
飯塚ブロックチェーン勉強会 #1
kkmory
0
140
Swarm: The distributed storage platform
kkmory
1
800
Kindai_Blockchain_study01
kkmory
0
260
Other Decks in Technology
See All in Technology
AIのグローバルトレンド2025 #scrummikawa / global ai trend
kyonmm
PRO
1
170
DuckDB-Wasmを使って ブラウザ上でRDBMSを動かす
hacusk
1
140
Nstockの一人目エンジニアが 3年間かけて向き合ってきた セキュリティのこととこれから〜あれから半年〜
yo41sawada
0
180
実践アプリケーション設計 ②トランザクションスクリプトへの対応
recruitengineers
PRO
4
1.2k
【Grafana Meetup Japan #6】Grafanaをリバプロ配下で動かすときにやること ~ Grafana Liveってなんだ ~
yoshitake945
0
220
2025年になってもまだMySQLが好き
yoku0825
8
3.4k
kubellが考える戦略と実行を繋ぐ活用ファーストのデータ分析基盤
kubell_hr
0
130
Webアクセシビリティ入門
recruitengineers
PRO
3
1.5k
データアナリストからアナリティクスエンジニアになった話
hiyokko_data
2
350
Jaws-ug名古屋_LT資料_20250829
azoo2024
3
220
実践アプリケーション設計 ①データモデルとドメインモデル
recruitengineers
PRO
5
1.5k
シークレット管理だけじゃない!HashiCorp Vault でデータ暗号化をしよう / Beyond Secret Management! Let's Encrypt Data with HashiCorp Vault
nnstt1
3
140
Featured
See All Featured
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.5k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
9
800
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
51
5.6k
The Straight Up "How To Draw Better" Workshop
denniskardys
236
140k
Code Reviewing Like a Champion
maltzj
525
40k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
111
20k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Imperfection Machines: The Place of Print at Facebook
scottboms
268
13k
A designer walks into a library…
pauljervisheath
207
24k
Transcript
Slackであそぼ! KFIE第一回LT会 森 啓輔
自己紹介
もりけいすけ @moririn772
山崎ゼミ3年
Bitcoin
Ruby
None
None
ブロックチェーン ウェブ の人 Ruby }
であそぶ
None
≒
用意するもの
Slack Ruby heroku*1 *1 : 自動化したいなら必要
以上
やり方は簡単
Step 1
Slackの設定
開発者向けページに飛んで https://api.slack.com/
つくるアプリのいろいろを決めて
BOTをつくって
ワークスペースに追加!
か ら の
遊び場チャンネルをつくって
チャンネルにいれる! 今回は #playground とします
Step 2
コーディング
処理の流れ
全体の流れ 天気くれ!
全体の流れ 天気あげる〜
全体の流れ ごにょごにょ
全体の流れ 投稿して!
全体の流れ 投稿ぽーん!
全体の流れ おk
全体の流れ おk
全体の流れ やったー!
コードをみてみよう
HTTPを使えるようにする gem install http コンソール
Rubyファイルをつくる touch otenki.rb コンソール
ライブラリを読み込む require 'http' require 'json' require 'open-uri' require 'time' otenki.rb
お天気情報を取得する def get_and_format response = "" open(@uri) {|f| f.each_line {|l|
response << l} } format(response) end otenki.rb
必要な項目だけ抽出 w = JSON.parse(response) title = w["title"] text = w["description"]["text"]
time = Time.parse(w[“description"] [“publicTime"]).strftime("%Y %m݄%d") otenki.rb
Slackに投げる response = HTTP.post("https://ུ params: { token: 4IPKcPRmH9faFKaf, channel: “#playground”,
text: message, as_user: true, }) otenki.rb
完成形はこちら https://gist.github.com/moririn772/de452d19f7c91bfce902e4d8201c16fc
注意事項
このコードは このまま公開しないでね
Access Token = 秘密情報
response = HTTP.post("https://ུ params: { token: 4IPKcPRmH9faFKaf, channel: channel, text:
message, as_user: true, }) otenki.rb これ!!!!
Token があれば遊び放題 (流出すると悪用の危険)
環境変数で設定しましょう (詳しくはWEBで)
Step 3
やってみる
実行する ruby otenki.rb コンソール
None
えっ手動とか ダサくない?
平日の朝8:00に 教えてほしい
Heroku Scheduler https://elements.heroku.com/addons/scheduler
平日の8:00 とか 指定時間に 投稿できる
以前こんなものを…
まとめ
やったこと Slack側の設定 コードを書く 手動で動作確認
やってないこと 秘密情報の保護 自動化
続きはウェブで
まだ全然できてないです
今週末に公開予定(未定)
みんなもあそんでみよう !
余談
Rubyに興味がある "
Fukuoka.rb
毎週水曜日 天神のどこか もくもく会
もくもく会
ゆるーくどこかに集まって 各自もくもくと勉強したり 作業したり本を読んだり するだけの会
初心者大歓迎
興味がある人は 話しかけてね
ありがとうございました