Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Botkit入門
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Takuya Arita
May 17, 2016
Programming
750
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.4k
Redash で踏み出す BI 導入はじめの一歩 / DataEngineeringStudy Redash
ariarijp
1
2.8k
Redash のいま / Redash in 2021
ariarijp
2
1.2k
Redash 導入・運用を4年ぐらいやって変わったこと・変わらなかったこと / Changed and unchanged things with Redash and me
ariarijp
0
1.4k
5年前の自分に伝えたい広告 API 周辺の歩き方 / SOT Tech Night vol.1
ariarijp
1
550
使われていない、を知る / How do we know unused things in the real world?
ariarijp
0
490
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
580
Other Decks in Programming
See All in Programming
新卒PdEのリアル
ryu1013
1
500
App Storeの外へ──日本のiOSサイドローディング入門 for iOSDC Japan 2026
yuukiw00w
0
220
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
190
AI が書く Go コードの品質を劇的に向上させる Linter: “declscope”
mpyw
0
370
Vue Fes Japan 2026 タイムテーブル徹底解説
448jp
1
250
SREの越境 / SRE Collaboration
y0hgi
2
250
Intent as Code
shoppingjaws
6
1k
{ Android | Kotlin } Gradle Plugin in 2026
ryunen344
1
320
GKE で Pod の見方を変えたら、スケールアウト時の挙動を真に捉えられた話
stkk
0
130
MVNOの申込からeSIM開通までをiOSアプリでつなぐ- 本人確認・MNP・通信事業者基盤をまたぐ実装
satotakeshi
0
440
AWS Step Functions 大規模並列の壁を越える / jaws-sonic-2026-niigata-step-functions
kasacchiful
PRO
1
490
AWS DevOps Agentで インシデント対応をAIに任せたい
honmarkhunt
7
3k
Featured
See All Featured
Everyday Curiosity
cassininazir
0
320
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
390
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
Context Engineering - Making Every Token Count
addyosmani
9
1.1k
Embracing the Ebb and Flow
colly
88
5.2k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
42k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Navigating Team Friction
lara
192
16k
So, you think you're a good person
axbom
PRO
2
2.2k
Building the Perfect Custom Keyboard
takai
2
880
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
500
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
240
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ʹศར ͳػೳΛ༩͢Δ͜ͱͰ͖Δ • Ͳ͏ͬͯ׆༻͢Δ͔ɺ։ൃऀͷΞΠσΟΞ ࣍ୈ