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
登壇資料を作る時に意識していること #登壇資料_findy
konifar
4
1.2k
Oxlintはいいぞ
yug1224
5
1.3k
CSC307 Lecture 01
javiergs
PRO
0
690
並行開発のためのコードレビュー
miyukiw
0
250
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
590
Apache Iceberg V3 and migration to V3
tomtanaka
0
160
AIによる開発の民主化を支える コンテキスト管理のこれまでとこれから
mulyu
3
340
Fluid Templating in TYPO3 14
s2b
0
130
コマンドとリード間の連携に対する脅威分析フレームワーク
pandayumi
1
460
izumin5210のプロポーザルのネタ探し #tskaigi_msup
izumin5210
1
130
Lambda のコードストレージ容量に気をつけましょう
tattwan718
0
130
ぼくの開発環境2026
yuzneri
0
240
Featured
See All Featured
The Pragmatic Product Professional
lauravandoore
37
7.1k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Ruling the World: When Life Gets Gamed
codingconduct
0
140
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
170
GitHub's CSS Performance
jonrohan
1032
470k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Git: the NoSQL Database
bkeepers
PRO
432
66k
Un-Boring Meetings
codingconduct
0
200
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.8k
Making the Leap to Tech Lead
cromwellryan
135
9.7k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
910
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!