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
370
ビールを飲みに行きたくなるスピーカーアプリ / API Meetup Tokyo #24
misoca12
February 23, 2018
Tweet
Share
Other Decks in Programming
See All in Programming
密集、ドキュメントのコロケーション with AWS Lambda
satoshi256kbyte
0
170
Writing documentation can be fun with plugin system
okuramasafumi
0
120
Rails アプリ地図考 Flush Cut
makicamel
1
110
GAEログのコスト削減
mot_techtalk
0
110
Unity Android XR入門
sakutama_11
0
140
SwiftUIで単方向アーキテクチャを導入して得られた成果
takuyaosawa
0
260
さいきょうのレイヤードアーキテクチャについて考えてみた
yahiru
3
730
SwiftUI Viewの責務分離
elmetal
PRO
0
140
[JAWS-UG横浜 #80] うわっ…今年のServerless アップデート、少なすぎ…?
maroon1st
1
170
iOSエンジニアから始める visionOS アプリ開発
nao_randd
3
120
法律の脱レガシーに学ぶフロントエンド刷新
oguemon
5
730
お前もAI鬼にならないか?👹Bolt & Cursor & Supabase & Vercelで人間をやめるぞ、ジョジョー!👺
taishiyade
5
3.8k
Featured
See All Featured
Into the Great Unknown - MozCon
thekraken
35
1.6k
Unsuck your backbone
ammeep
669
57k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
3
310
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
132
33k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.5k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Git: the NoSQL Database
bkeepers
PRO
427
64k
Become a Pro
speakerdeck
PRO
26
5.1k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
The Invisible Side of Design
smashingmag
299
50k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
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!