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
Botkit入門
Search
Takuya Arita
May 17, 2016
Programming
740
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Botkit入門
社内勉強会用の資料です
Takuya Arita
May 17, 2016
More Decks by Takuya Arita
See All by Takuya Arita
Hosted Redash の EOL と移行ツール redash-migrate / You should know about Hosted Redash EOL and redash-migrate
ariarijp
0
3.3k
Redash で踏み出す BI 導入はじめの一歩 / DataEngineeringStudy Redash
ariarijp
1
2.7k
Redash のいま / Redash in 2021
ariarijp
2
1.1k
Redash 導入・運用を4年ぐらいやって変わったこと・変わらなかったこと / Changed and unchanged things with Redash and me
ariarijp
0
1.4k
5年前の自分に伝えたい広告 API 周辺の歩き方 / SOT Tech Night vol.1
ariarijp
1
540
使われていない、を知る / How do we know unused things in the real world?
ariarijp
0
470
MULTI_ORG について / What is MULTI_ORG in Redash
ariarijp
1
3.9k
あらためて振り返る Redash の使いどころ / Why I strongly recommend Redash
ariarijp
2
1.3k
PHP Data Structures
ariarijp
1
570
Other Decks in Programming
See All in Programming
Snowflake Summitでの新機能 CoCo / CoWork / snowflake-summit-2026-overall-what-new-coco
tatsuhiro
1
160
ローカルLLMでどこまでコードが書けるか -拡張版 / How much code can be written on a local LLM Extended
kishida
11
4.3k
AIだと陥りがちなJakarta EE最新技術への移行時の落とし穴と解決策
tnagao7
0
110
Dataformのリポジトリを立ち上げるときにまずやること / dataform-day0-2026
snhryt
0
170
技術記事、 専門家としてのプログラマ、 言語化
mizchi
13
6.3k
A2UI という光を覗いてみる
satohjohn
1
140
エンジニアと一緒にテストコードの設計と実装を改善した話
mototakatsu
0
210
技術的負債解消で開発者の未来を開く- AIの力でコード刷新
kmd2kmd
0
110
C# and C++ Interoperability - cho-dotnetnew
harukasao
0
290
ふつうのFeature Flag実践入門
irof
8
4.1k
キャリア迷子上等 ─ "ない道"は自分で作ればいい
16bitidol
3
2.2k
AIで効率化できた業務・日常
ochtum
0
140
Featured
See All Featured
Un-Boring Meetings
codingconduct
0
320
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
200
Tell your own story through comics
letsgokoyo
1
960
So, you think you're a good person
axbom
PRO
2
2.1k
The untapped power of vector embeddings
frankvandijk
2
1.8k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
How GitHub (no longer) Works
holman
316
150k
Thoughts on Productivity
jonyablonski
76
5.2k
The SEO identity crisis: Don't let AI make you average
varn
0
490
Color Theory Basics | Prateek | Gurzu
gurzu
0
370
A better future with KSS
kneath
240
18k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
740
Transcript
Botkitೖ @ariarijp
ఆϦεφʔ • “Bot”ͱ͍͏ΩʔϫʔυΛฉ͍ͨ͜ͱ͕͋Δ • SlackΛΑ͍ͬͯ͘Δ • BotkitΛฉ͍ͨ͜ͱ͕ͳ͍ɺͬͨ͜ͱ͕ͳ͍
Botͱ(WikipediaΑΓ) • ΠϯλʔωοτϘοτʢӳ: Internet botʣɺΠϯλʔωοτ্ͰࣗಈԽ͞ ΕͨλεΫΛ࣮ߦ͢ΔΞϓϦέʔγϣϯιϑτΣΞɻWebϘοτ͋Δ͍ ୯ʹϘοτͱݺͿɻҰൠʹ୯७ͳ܁Γฦ͠ͷλεΫΛ͜ͳ͠ɺͦͷΑ͏ͳ λεΫʹؔͯ͠ਓ͕ؒखͰΔΑΓߴͰ͋ΔɻϘοτओʹΫϩʔϥ ͱͯ͠ΘΕΔ͜ͱ͕ଟ͘ɺਓؒͷԿഒͷ͞ͰWebϖʔδΛࣗಈతʹ ूΊɺͦͷ༰ʢใʣΛੳͯ͠ྨ͢ΔɻWebαʔόʹ
robots.txt ͱ ͍͏ϑΝΠϧ͕͋ΓɺΫϩʔϥ͕ै͏͖نଇ͕ॻ͔Ε͍ͯΔɻ • ͦͷଞʹɺਓؒΑΓߴͳԠ͕ཁٻ͞ΕΔ໘ͰϘοτ͕ΘΕͨΓ ʢήʔϜΦʔΫγϣϯͳͲͰͷϘοτར༻ʣɺ·Εʹਓؒͷ׆ಈΛΤϛϡ Ϩʔγϣϯ͢ΔͷʹΘΕͨΓ͢ΔʢձϘοτͳͲʣɻ
ձBotʹ͍ͭͯ͏͢͜͠ • ͜͜࠷ۙͷ༷ʑͳBotؔ࿈χϡʔε • LINEFacebook, Microsoft͕BotΛͬͨαʔϏε։ൃڥΛެ։͠ʹͳͬͨ • ۙͷϏοάσʔλɺػցֶशɺਓೳͱ͍ͬͨΩʔϫʔυͱؔΘΓ͕͋Δͱ͍͑ Δ •
ऩूͨ͠σʔλɺֶशͨ͠σʔλʹج͍ͮͯదͳԠΛ͢Δ • LINEͱMicrosoft͕ఏڙ͍ͯ͠ΔʮΓΜͳʯ͕༗໊Ͳ͜Ζ • http://rinna.jp/rinna/ • SlackͷྲྀߦʹΑΓWebؔ࿈αʔϏεͷاۀͰɺBot͕ChatopsͳͲͷ໘Ͱ׆༻͞Εͯ ͍Δ
Botkitͱ • Slack༻ͷBotΛ࡞͢ΔͨΊͷϑϨʔϜϫʔ Ϋ • ϓϩάϥϛϯάݴޠNode.jsΛ༻͍ͯ͠Δ • ͔ᷮͳ࣮ͰಛఆͷΩʔϫʔυʹԠ͢ΔBot Λ؆୯ʹ࡞Δ͜ͱ͕Ͱ͖Δ
BotkitͰ ͍͋ͭ͞BotΛ࡞ͬͯΈΑ͏
͍͋ͭ͞Botͷࡶͳઃܭ • ʮ͓Α͏ʯͱ͔͚͠ΔͱʮࠓΑΖ͠ ͘ʯͱԠ͑Δ • ʮ͜Μʹͪʯͱ͔͚͠Δͱʮ͜Μʹͪʯ ͱԠ͑Δ • ʮ͓͔ͭΕ͞·ʯͱ͔͚͠Δͱʮ·ͨ໌ʯ ͱԠ͑Δ
ڥߏங $ curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
$ sudo apt-get install -y nodejs $ cd /vagrant $ npm install --save botkit
αϯϓϧίʔυΛࢀߟʹ࣮ var Botkit = require('botkit'); var controller = Botkit.slackbot(); controller.spawn({
token: process.env.SLACK_BOT_TOKEN, }).startRTM() controller.hears('͓Α͏', ['direct_message', 'direct_mention', 'mention'], function(bot, message) { bot.reply(message, 'ࠓΑΖ͘͠'); }); controller.hears('͜Μʹͪ', ['direct_message', 'direct_mention', 'mention'], function(bot, message) { bot.reply(message, '͜Μʹͪ'); }); controller.hears('͓͔ͭΕ͞·', ['direct_message', 'direct_mention', 'mention'], function(bot, message) { bot.reply(message, '·ͨ໌'); });
ಈ࡞֬ೝ $ SLACK_BOT_TOKEN=BotϢʔβʔͷτʔΫϯ node bot.js info: ** No persistent storage
method specified! Data may be lost when process shuts down. info: ** Setting up custom handlers for processing Slack messages info: ** API CALL: https://slack.com/api/rtm.start notice: ** BOT ID: greetbot ...attempting to connect to RTM!
ಈ࡞֬ೝ • ࣮ߦ͢ΔͱBotϢʔβʔ͕ΦϯϥΠϯঢ়ଶʹͳ Δ • BotϢʔβʔΛదͳνϟϯωϧ·ͨάϧʔϓ ʹট͢Δ • BotϢʔβʔʹϝϯγϣϯΛ͚ͭͯʮ͓Α ͏ʯͱ͔͔͚ͯ͠ΈΔ
࣮ͷ·ͱΊ • controller.hearsͰԿʹԠ͢Δ͔Λఆٛ͢Δ • controller.hearsʹ͍ͯ͠Δແ໊ؔͰͲͷ Α͏ͳԠΛ͢Δ͔Λఆٛ͢Δ
ϦΞϧλΠϜʹձ͕Ͱ͖ΔΈ • WebSocketͱ͍͏௨৴ن(ϓϩτίϧ)Λ༻ • WebSocketʹ͍֤ͭͯࣗௐͯΈͯͩ͘͞ ͍ • HTTPͱͷҧ͍͕ཧղ͕Ͱ͖Δͱྑ͍Ͱ͠ΐ ͏
BotkitͳΒ࣮؆୯ͳͷͰ ͋ͱΞΠσΟΞ࣍ୈ
Botͷ࣮ྫ • ఱؾΛฉ͍ͨΒࠓͱ໌ͷఱؾΛڭ͑ͯ͘ΕΔ • Ӻ໊Λฉ͍ͨΒΓೖΕ࿏ઢΛڭ͑ͯ͘ΕΔ • ࠓͷ༧ఆΛฉ͍ͨΒGoogleΧϨϯμʔͳͲ͔ Βࣗͷ༧ఆΛڭ͑ͯ͘ΕΔ • ࢦఆͷ࣌ࠁʹͳͬͨΒ෦ఆྫͷϦϚΠϯυΛ͠
ͯ͘ΕΔ
طଘͷWebAPIͳͲͱ Έ߹ΘͤΔ͜ͱͰศརͳBot࡞ΕΔ
·ͱΊ • BotkitΛ͏͜ͱͰ؆୯ʹSlackͷBotΛ࡞Δ͜ ͱ͕Ͱ͖Δ • طଘͷWebAPIΛར༻͢Δ͜ͱͰɺBotʹศར ͳػೳΛ༩͢Δ͜ͱͰ͖Δ • Ͳ͏ͬͯ׆༻͢Δ͔ɺ։ൃऀͷΞΠσΟΞ ࣍ୈ