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
ビールを飲みに行きたくなるスピーカーアプリ / API Meetup Tokyo #24
Search
misoca12
February 23, 2018
Programming
1
410
ビールを飲みに行きたくなるスピーカーアプリ / API Meetup Tokyo #24
misoca12
February 23, 2018
Tweet
Share
Other Decks in Programming
See All in Programming
SourceGeneratorのススメ
htkym
0
200
IFSによる形状設計/デモシーンの魅力 @ 慶應大学SFC
gam0022
1
310
なぜSQLはAIぽく見えるのか/why does SQL look AI like
florets1
0
470
Lambda のコードストレージ容量に気をつけましょう
tattwan718
0
130
Oxlint JS plugins
kazupon
1
970
OCaml 5でモダンな並列プログラミングを Enjoyしよう!
haochenx
0
140
フロントエンド開発の勘所 -複数事業を経験して見えた判断軸の違い-
heimusu
7
2.8k
Fluid Templating in TYPO3 14
s2b
0
130
CSC307 Lecture 03
javiergs
PRO
1
490
Best-Practices-for-Cortex-Analyst-and-AI-Agent
ryotaroikeda
1
110
ノイジーネイバー問題を解決する 公平なキューイング
occhi
0
100
[KNOTS 2026登壇資料]AIで拡張‧交差する プロダクト開発のプロセス および携わるメンバーの役割
hisatake
0
290
Featured
See All Featured
Writing Fast Ruby
sferik
630
62k
We Have a Design System, Now What?
morganepeng
54
8k
Color Theory Basics | Prateek | Gurzu
gurzu
0
200
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
110
The Curse of the Amulet
leimatthew05
1
8.6k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
14k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
180
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
96
Facilitating Awesome Meetings
lara
57
6.8k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
280
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Transcript
ϏʔϧΛҿΈʹߦ͖ͨ͘ͳΔ εϐʔΧʔΞϓϦ API Meetup Tokyo #24 Takuya Kimura @misoca12
ࣗݾհ • Ͳ͔͜Ͱฉ͍ͨ͜ͱ͋Δ໊લ • ීஈAndroidΞϓϦΛ։ൃ • ΫϥϑτϏʔϧ͕͖ ଜ Takuya Kimura
@misoca12
ͭͬͨ͘ͷ ΠΧεςʔδ ήʔϜͷεςʔδใΛऔಘ͢Δ Google Assistant͚ΞϓϦ BeerHolicTokyo(ϕʔλ൛) ϏʔϧͷใΛߘͨ͠Γۙ͘ͷ ϏΞόʔΛݕࡧ͢ΔAndroid͚ΞϓϦ
ࠓൃද͢Δ͜ͱ ΫϥϑτϏʔϧͷใΛڭ͑ͯ͘ΕΔ GoogleAssistant͚ΞϓϦΛ࡞ͬͨ
ΫϥϑτϏʔϧͱ খنͳϒϧϫϦʔ(ৢॴ)Ͱ࡞Γख͕ ࣭Λॏࢹ͠ɺͩ͜ΘΓΛ࣋ͬͯख࡞Γ ͨ͠(Ϋϥϑτ)Ϗʔϧͷ͜ͱɻ
ΫϥϑτϏʔϧͱ খنͳϒϧϫϦʔ(ৢॴ)Ͱ࡞Γख͕ ࣭Λॏࢹ͠ɺͩ͜ΘΓΛ࣋ͬͯख࡞Γ ͨ͠(Ϋϥϑτ)Ϗʔϧͷ͜ͱɻ • छྨ͕ଟ͍ ϒϧϫϦʔຊͰ300Ҏ্ΞϝϦΧͰ5000Ҏ্ • ྲྀ௨ྔ͕গͳ͍ قઅݶఆҰ͔͠ੜ࢈͞Εͳ͍ͷଟ͍
ΫϥϑτϏʔϧͷϝχϡʔ
ΫϥϑτϏʔϧͷϝχϡʔ TAPʢϏʔϧͷ͗ޱʣ= ੜϏʔϧ
ۙͷϏΞόʔࣄ ҿΈʹ ߦ͖͍ͨ
ۙͷϏΞόʔࣄ ྲྀಈతͳใ
ۙͷϏΞόʔࣄ ྲྀಈతͳใ ෳͷ4/4ʹ ࢄ͍ͯ͠Δ
None
࣮ࡍʹ࡞ͬͯΈͨ
None
“What’s on tap?” ͲΜͳੜϏʔϧ͕͋Γ·͔͢ʁ
֓ཁ ΫϥϑτϏʔϧఏڙऀ(ϏΞόʔ)͕ొͨ͠ λοϓใΛڭ͑ͯ͘ΕΔGoogle AssistantΞϓϦɻ
֓ཁ ΫϥϑτϏʔϧఏڙऀ(ϏΞόʔ)͕ొͨ͠ λοϓใΛڭ͑ͯ͘ΕΔGoogle AssistantΞϓϦɻ • Ͳͷ͓ళͰͲͷΑ͏ͳϏʔϧ͕ఏڙ͞Ε͍ͯΔ͔ ͷใ͕औಘͰ͖Δ • ఏڙ͞Ε͍ͯΔϏʔϧʹਵ͢Δใऔಘ͢ Δ͜ͱ͕Ͱ͖Δ
ߏ AndroidΞϓϦ AssistantΞϓϦ Firebase
AndroidΞϓϦʙ֓ཁʙ • ΫϥϑτϏʔϧఏڙళฮ͕ར༻͢Δ ͜ͱΛఆ • ݱࡏͷλοϓใΛొ͢Δ
AndroidΞϓϦʙϩάΠϯʙ
AndroidΞϓϦʙϢʔβొʙ
AndroidΞϓϦʙϢʔβొޙʙ
AndroidΞϓϦʙϢʔβొޙʙ
AndroidΞϓϦʙλοϓొʙ
AndroidΞϓϦʙλοϓҰཡʙ
AndroidΞϓϦʙλοϓҰཡʙ
AndroidΞϓϦʙͬͯΔ͜ͱʙ ϩάΠϯ Ϣʔβొ λοϓొ
AssistantΞϓϦʙ֓ཁʙ • ΫϥϑτϏʔϧΛҿΈ͍ͨਓ͕ར༻ ͢Δ͜ͱΛఆ • ళฮຖʹొ͞Ε͍ͯΔλοϓใ Λऔಘ͢Δ
AssistantΞϓϦʙॲཧϑϩʔʙ Webhook
AssistantΞϓϦʙݺͼग़͠ʙ
AssistantΞϓϦʙλοϓҰཡʙ
AssistantΞϓϦʙλοϓৄࡉʙ
It worked!
TIPS
Dialogflowͱ ࣗવݴޠॲཧΛ؆୯ʹ࣮Ͱ͖ΔαʔϏεɻ • Intent ݅Λຬͨͨ࣌͠ʹͲ͏ৼΔ͏͔ͱ͍͏ ग़དྷࣄͷఆٛɻ • Entity ࣗવݴޠͷத͔Βநग़͢ΔΩʔϫʔυɻ
Require Parameter Intentʹͬͯ͘ΔύϥϝʔλΛඞਢԽ͢Δ͜ͱ ͰඞཁͳύϥϝʔλΛऩूͯ͘͠ΕΔɻ
User Entity Placeͱ͍͏EntityʹAPI Meetup TokyoΛొ͢ Δ͜ͱͰDialogflowͰళฮͱೝࣝ͞ΕΔɻ
User Entity ొ͠ͳ͍ͱ ొ͢Δͱ UserEntityొAPI͕༻ҙ͞Ε͍ͯΔɻ POST /entities POST /entities/{id}/entries
Contexts IntentͷؔΛঢ়ଶͱͯ͠ఆٛ͢Δɻ ໊લ͖ύϥϝʔλΛ༩͢Δ͜ͱՄೳɻ • input contextIntentͷൃੜ݅ • output context࣍ͷIntentͷൃੜ݅ Webhook͔ΒઃఆՄೳɻ
FollowupEvent Intentͷൃੜ݅ͱͯ͠Event͕͋Δɻ Webhook͔ΒFollowupEventͱͯ͠Πϕϯτ໊ Λฦ٫͢Δ͜ͱͰผͷIntentΛൃੜͤ͞Δ͜ͱ͕ Ͱ͖ΔɻʢϦμΠϨΫτతͳ͍ํʣ
Webhook Timeout Webhookͨ͠߹5ඵҎʹϨεϙϯε͕ͳ͍ͱλΠϜΞτͱ ͳΓɺΞϓϦ͕ऴྃ͢Δɻ Deploy Fulfillment https://developers.google.com/actions/dialogflow/deploy-fulfillment Cloud FunctionʹҰఆ࣌ؒϦΫΤετ͕ͳ͍ͱεϦʔϓϞʔυʹೖ Γɺ෮ؼ·Ͱඵ͔͔ΔͷͰҙɻ
։ൃڥͰcloud functions(firebase)ͷಈ࡞͕͍ཧ༝ https://qiita.com/Masaaki/items/54cf16c6c55cdae91b82
εϐʔΧʔҎ֎ͷߟྀ
ΞϓϦ໊ͷೝࣝ ຊޠ൛GoogleAssistantͰجຊతʹӳޠͳͲ ຊޠʹม͞ΕΔɻ ֯εϖʔε͕ೖ͍ͬͯΔ
ಡΈํ͕ҧ͏ ࢥͬͨ௨ΓʹಡΜͰ͘Εͳ͍͜ͱ͕͋Δɻ API Meetup → ΞϐʔϛʔτΞοϓ ࣈͷಡΈո͍͠߹͕͋Δɻ ͻΒ͕ͳΧλΧφʹ͢Δ͜ͱͰճආՄೳɻ
ࠓޙͷ༧ఆ Whats on Tap ΛͬͯΈ͍ͨళฮืूதʂ ڠྗͯ͠Β͑Δళฮʹࢼݧಋೖ͠ɺ ϦϦʔεʹ͚ͯௐ༧ఆɻ
Have a nice beer life!