Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
GoogleHomeを買い物に役立てる
Search
fuwamaki
January 15, 2018
Technology
0
52
GoogleHomeを買い物に役立てる
社内発表で用いた資料。
特に社内情報などないので公開します。
fuwamaki
January 15, 2018
Tweet
Share
More Decks by fuwamaki
See All by fuwamaki
iOSの理想的なUIを考える
fuwamaki
3
970
xcode10の新機能について
fuwamaki
1
1.5k
Other Decks in Technology
See All in Technology
Fashion×AI「似合う」を届けるためのWEARのAI戦略
zozotech
PRO
2
150
エンジニアリングマネージャー はじめての目標設定と評価
halkt
0
280
今からでも間に合う!速習Devin入門とその活用方法
ismk
1
690
形式手法特論:CEGAR を用いたモデル検査の状態空間削減 #kernelvm / Kernel VM Study Hokuriku Part 8
ytaka23
2
460
[デモです] NotebookLM で作ったスライドの例
kongmingstrap
0
140
【AWS re:Invent 2025速報】AIビルダー向けアップデートをまとめて解説!
minorun365
4
510
グレートファイアウォールを自宅に建てよう
ctes091x
0
150
Snowflakeでデータ基盤を もう一度作り直すなら / rebuilding-data-platform-with-snowflake
pei0804
4
1.4k
SSO方式とJumpアカウント方式の比較と設計方針
yuobayashi
7
620
日本Rubyの会の構造と実行とあと何か / hokurikurk01
takahashim
4
1.1k
モダンデータスタック (MDS) の話とデータ分析が起こすビジネス変革
sutotakeshi
0
480
技術以外の世界に『越境』しエンジニアとして進化を遂げる 〜Kotlinへの愛とDevHRとしての挑戦を添えて〜
subroh0508
1
440
Featured
See All Featured
Build your cross-platform service in a week with App Engine
jlugia
234
18k
How to Think Like a Performance Engineer
csswizardry
28
2.4k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.3k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
The Language of Interfaces
destraynor
162
25k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
390
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.5k
Leading Effective Engineering Teams in the AI Era
addyosmani
8
1.3k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
34k
Become a Pro
speakerdeck
PRO
31
5.7k
Designing for humans not robots
tammielis
254
26k
Transcript
Google HomeΛങ͍ʹཱͯΔ Hacker’s Hour 2018-1 @fuwamaki
ࣗݾհ 2 ໊લɿ༒࡞ ϚΩϢαΫ @fuwamaki ಛɿఱύ ॴଐɿϔϧεέΞࣄۀຊ෦ ٕज़౷ׅ෦ γεςϜ։ൃ෦ ཁɿϧφϧφͷiOSΞϓϦ࡞ͬͯ·͢
࣮ɿ࠷ॳͰ࠷ޙͷൃද
3 Google Home ͷ ΧελϚΠζ ʹ͍͓ͭͯ͠·͢ʂʂ
࣍ 4 1. എܠ 2. ϊϯϓϩάϥϛϯάͰΧελϚΠζ 3. ϓϩάϥϛϯάͰΧελϚΠζ 4. ͓ΘΓʹ
1 എܠ
എܠ 6 εϚʔτεϐʔΧʔɺAIεϐʔΧʔͰͳ͍ Ի͔Βೝࣝͨ͠ݴ༿ͷதͷಛఆͷΩʔϫʔυʹ͔͠Ԡ͠ͳ͍ Google Home͕͔Βͳͯ͘ँΔ࣌ɿʮ͢Έ·ͤΜɺ ͓ʹཱͯͦ͏ʹ͋Γ·ͤΜɻͬͱษڧͯ͠վળ͠·͢ɻʯ -> ࣮ࡍɺԻೖྗ͡Ό͋·Γษڧͯ͘͠Εͳ͍ɻɻɻ ԻೖྗҎ֎ͰΧελϚΠζ͠ͳ͍ͱɺGoogle
Home͕Ͱ͖Δ͜ͱ૿͑ͳ͍
ΧελϚΠζ͢ΕGoogle Homeͬͱศརʹ 7 ྫ https://qiita.com/diescake/items/4f354a5dc7cb738efd4f
8 ΧελϚΠζ͠Α͏
ࠓճͷඪ 9 ങ͍͍ͨϞϊΛϝϞͰ͖ΔΑ͏ʹΧελϚΠζʂ OK, Google ങ͍Χΰʹ γϟϯϓʔΛՃ ങ͍Χΰʹ γϟϯϓʔΛՃ ͠·ͨ͠
2 ϊϯϓϩάϥϛϯάͰ ΧελϚΠζ
༻ҙ͢Δͷ 11 Google Home ͱ ܞଳ ͚ͩʂʂ
ܞଳʹΞϓϦΛΠϯετʔϧ 12 IFTTTʢΠϑτɿIF This Then Thatʣ …WebαʔϏεಉ࢜Λ࿈ܞͰ͖ΔαʔϏεɻ ϓϩάϥϛϯάෆཁͰɺ֤αʔϏεͷϩάΠϯͱ ϑΟϧλʔ݅Λઃఆ͢Δ͚ͩར༻Մೳɻ ※ӳޠ͔ͬΓͳͷͰɺ࠷ॳ͍ํΑ͘Θ͔Βͳ͍͔ɻ
IFTTTͷ͍ํ 13 ྫ ͠ʮޕલٳ͍ͨ͠ʯͱݴͬͨΒ ϝʔϧ ΛૹΔ Appletɿ
࣮ࡍʹ࡞ͬͯΈΔ 14 Evernoteʹങ͍ͷϦετΛՃ͢ΔAppletΛ࡞Δ ʮEvernoteʹ Ϟϊ ΛՃʯͱݴͬͨΒ EvernoteʹϊʔτΛՃ ͢Δ
ThisͷઃఆɿGoogle Assistant 15 GoogleͷAIΞγελϯτɻ Google Homeʹೖྗ͞ΕͨԻ͕ ૹΒΕ͖ͯͯɺԻͷղੳΛߦ͏ɻ ※ࣄલʹϩάΠϯ͓ͯ͘͠ɻ
ThatͷઃఆɿEvernote 16 ϊʔτΛऔΔΑ͏ʹใΛੵ͢Δ ιϑτΣΞɾΣϒαʔϏεɻ ※ࣄલʹϩάΠϯ͓ͯ͘͠ɻ
17 ઃఆҎ্ɻ
18 σϞ
19 Ұ֮͑ͯ͠·͑ɺઃఆͱͬͯ؆୯ʂʂʂ
IFTTTʹΑΔΧελϚΠζ ϝϦοτɾσϝϦοτ 20 • ϝϦοτ • ϓϩάϥϛϯά͕ෆཁͰɺઃఆͱͬͯ؆୯ • ࿈ܞՄೳͳ༗໊αʔϏε͕ଟ ex).
Slack, twitter, trello, youtube, outlook, spotify • σϝϦοτ • શ෦ӳޠͳͷͰɺҰॠϏϏΔ • IFTTT͕༻ҙͨ͠ઃఆ͔͠Ͱ͖ͳ͍ͷͰɺ൚༻ੑ͕͍ ※Evernoteͷ߹ɺՃ͢Δϊʔτ͕ຖճผʹͳͬͯ͠·͏
3 ϓϩάϥϛϯάͰ ΧελϚΠζ
ϓϩάϥϛϯάͰΧελϚΠζ ϝϦοτɾσϝϦοτ 22 • ϝϦοτ • API࡞Ҏ֎ɺϊϯϓϩάϥϛϯάͰઃఆͰ͖Δ • ։ൃऀ͕͖ͳΑ͏ʹ࡞ΕΔͷͰɺ൚༻ੑߴ͘࡞ΕΔ •
σϝϦοτ • IFTTTΛར༻͢ΔΑΓख͕͔͔ؒΔ • ϓϩάϥϜܦݧ͕ͳ͍ͱख͕ग़͠ʹ͍͘
σϑΥϧτ ΞʔΩςΫνϟ 23 Google Home Google Assistant Dialogflow API Server
Action on Google 24 …Google Assistant͔Βݺͼग़ͤΔαʔϏεͷ͜ͱɻ Google AssistantͱଞαʔϏεʢDialogflowͳͲʣΛͭͳ͛Δɻ
Dialogflow 25 …ݴޠղੳΤϯδϯɻ Google Assistant͔ΒૹΒΕ͖ͯͨݴޠΛղੳ͢Δɻ ղੳ݁ՌʹԠͯ͡ߦ͏ॲཧΛઃఆͰ͖Δɻ ※ϊϯϓϩάϥϛϯάͰઃఆՄೳɻϓϩάϥϛϯάͰઃఆՄೳɻ
σϑΥϧτ ΞʔΩςΫνϟ 26 Google Home Google Assistant Dialogflow API Server
Իೖྗ Իղੳ ݴޠղੳ APIαʔό
APIαʔό࣮ɺͳ͍͍ͯ͘ 27 Google Home Google Assistant Dialogflow API Server Google
Home Google Assistant Dialogflow ᶃ ᶄ
28 ᶄϊϯϓϩάϥϛϯάͰΧελϚΠζʂ
※DialogflowΛ༻͍ͨϊϯϓϩάϥϛϯάྫ 29
30 Λͯ͠ɻ Ͱɺ࣮ࡍʹ࡞ͬͯΈΔ
ࠓճͷΞʔΩςΫνϟ 31 Google Home Google Assistant Dialogflow Server ʮങ͍͔͝ʹϞϊΛՃʯͱ͍ͬͨΒɺങ͍DBʹϞϊΛՃ ͢Δ
API ServerߏஙͰར༻ͨ͠ͷ 32 HerokuɿPaaSαʔϏεͰɺwebΞϓϦͷެ։Λ؆୯ʹͯ͘͠ ΕΔαʔϏεɻ Node.jsɿαʔόαΠυͷJavaScriptݴޠɻ ExpressɿNode.jsͰͷԦಓతͳ։ൃΛεϐʔυΞοϓͤ͞Δϑ ϨʔϜϫʔΫɻ MongoDBɿυΩϡϝϯτࢥߟͷσʔλϕʔεɻNoSQLɻε ΩʔϚϨεͳͷͰΧϥϜΛઃఆ͢Δඞཁ͕ͳ͍ɻ
RestAPIઃܭ 33 Method POST URL https://my3-restapi.herokuapp.com/api Header {Content-Type: application/json} Request
Body {result:parameters:{thing:Ϟϊ}} APIϦΫΤετɿ DBઃܭɿ {id:xxxxxxxxxxxxxx, thing:Ϟϊ}
ࠓճͷϑϩʔ 34 Google Home Google Assistant Dialogflow Server ʮങ͍Χΰʹ ϞϊΛՃʯ
Իղੳͯ͠ Dialogflowʹ͢ ʮങ͍ΧΰʹϞϊ ΛՃʯͩͬͨΒ APIRequst͢Δ ϞϊΛDBʹ อଘ POST Request Response
35 σϞ
࡞ͬͯΈͯࢥͬͨ͜ͱ 36 • ԻͰΞϓϦىಈ -> Իೖྗͱ͍͏2ͭखॱ͕ඞཁͩͬͨɻ • APIΛGET͢ΕɺଞαʔϏεʹ൚༻Ͱ͖Δɻ • ϓϩάϥϛϯάAPI࡞͚ͩͰࡁΉɻ
ͨͩɺීஈΞϓϦ։ൃ͕ϝΠϯͳͷͰɺAPI࡞ʹҰ൪͔͔࣌ؒͬͨɻ • ·ͨɺDialogflowϊϯϓϩάϥϛϯά͕ͩɺগ͠ෳࡶɻ
37 ͱ͜ΖͰɺ࡞ΓऴΘ͔ͬͯΒؾ͍ͮͨɻ
طଘͰ͋ͬͨস 38 • ʮγϣοϐϯάϦετͷϞϊΛՃʯ ͰՃͰ͖ͪΌͬͨɻ • ΞϓϦ͔ΒݟΕͳ͍ɺweb͔ΒͷΈӾཡՄೳɻ
4 ͓ΘΓʹ
ֶΜͩ͜ͱ 40 • ࣄલʹௐΔ͜ͱ͕େࣄʂʂʂ ؆୯ʹͰ͖ΔͷɺطଘػೳIFTTTΛ͍·͠ΐ͏ɻ ※IFTTTʹͳͦ͞͏ͩͬͨͷͰ༉அͨ͠ɻɻɻ • ͰɺGoogleγϣοϐϯάϦετɺΞϓϦͰݟΕͳ͍ -> ࠓճ࡞ͨ͠ͷΛදࣔ͢ΔΞϓϦΛ࡞ΕΕࠩผԽʂ
-> ؾٳΊͰ͢ɺ͢Έ·ͤΜm(_ _)m
·ͱΊɺల 41 • Google HomeͰͰ͖Δ͜ͱ͕૿͑Δͱָ͍͠ʂ • ࣍Ոిͱͭͳ͍͛ͨʢRemoগ͠ஈߴΊ͚ͩͲʣ RemoͳΒIFTTTͰ؆୯ʹઃఆͰ͖ͦ͏
42 Google Home͕Ͱ͖Δ͜ͱΛ૿ͯ͠ɺ ՈϥΠϑΛͬͱָ͘͠ʂ ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ