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
ネコのために webアプリと連携する スキルを作ってみた/alexa-for-cat-2018
Search
Hidetaka Okamoto
September 04, 2018
Programming
620
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ネコのために webアプリと連携する スキルを作ってみた/alexa-for-cat-2018
AAJUG Offline meetup vol.2
Hidetaka Okamoto
September 04, 2018
More Decks by Hidetaka Okamoto
See All by Hidetaka Okamoto
OpenAI APIで API Changelogを要約してみた話 / chatgpt-osaka-1
hideokamoto
0
690
コミュニティ運営から 中の人に変わって感じたこと
hideokamoto
0
140
Developerが Developer Advocateになった話 / dev-rel-meetup-tokyo-71
hideokamoto
0
380
Jamstack開発者のための App Runner入門
hideokamoto
1
540
WordPressでの webサイト制作2022 / ngk2022s
hideokamoto
0
490
JavaScript(TypeScript)で メディアサイトを インフラから構築する方法 / jsconf-jp-2021
hideokamoto
2
4.4k
AWS上でStripeを利用したアプリをより安全にデプロイする方法 /jaws-pankration-2021
hideokamoto
1
240
Shifter Headlessと Headless WordPressの紹介
hideokamoto
0
2.1k
Stripe & Next.js + AWS Amplify で会員 + 定期課金機能 / JP_Stripes20210903
hideokamoto
7
3.3k
Other Decks in Programming
See All in Programming
OSもどきOS
arkw
0
560
技術記事、AIに書かせるか、自分で書くか? 〜それでも私が自分の手で書く理由〜 / #QiitaConference
jnchito
2
1.4k
[2026年度第1回ORセミナー] 計画最適化ベンチャーと競技プログラミング人材
terryu16
0
260
スマートグラスで並列バイブコーディング
hyshu
0
140
並列実装の現場、2ヶ月間実務でAIを使い倒したAIもPCも私も限界が近い
ming_ayami
0
130
Dataformのリポジトリを立ち上げるときにまずやること / dataform-day0-2026
snhryt
0
160
Lessons from Spec-Driven Development
simas
PRO
0
200
LLM本来の能力を解き放つサンドボックス技術とAI民主化への適用
yukukotani
3
4k
Inside Stream API
skrb
1
710
「エンジニアインターン、どうやって取った?」準備のリアルを語るLT会 Progate BAR
akiomatic
0
130
その問い、本当に正しいですか?AI時代のエンジニアに必要な哲学と認知科学 / ai-philosophy-cognitive-science
minodriven
8
4.7k
Claspは野良GASの夢をみるか
takter00
0
190
Featured
See All Featured
The Spectacular Lies of Maps
axbom
PRO
1
810
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
840
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
200
Agile that works and the tools we love
rasmusluckow
331
21k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
460
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.9k
How to Ace a Technical Interview
jacobian
281
24k
AI: The stuff that nobody shows you
jnunemaker
PRO
8
710
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
610
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Between Models and Reality
mayunak
4
340
Transcript
ωίͷͨΊʹ webΞϓϦͱ࿈ܞ͢Δ εΩϧΛ࡞ͬͯΈͨ AAJUG 2018/09/03 Ԭຊलߴ
ࣗݾհ • Digitalcube Co. Ltd. • AWS Samurai 2017 •
ؔͷJAWS-UGӡӦϝϯόʔ H i d e t a k a O k a m o t o
େલఏͱͯ͠
Ͷ͔͜Θ͍͍
Ͷ͔͜Θ͍͍
ॅΜͰ͍Δͱ ؾʹͳΔ͜ͱ
ࠓτΠϨͪΌΜͱͨ͠ʁ
ࠓτΠϨͪΌΜͱͨ͠ʁ ͜ͷࢠ࠷ۙ͏Μͪͯ͠ͳ͍ͷͰʁ
࠷େͷ
͍ͭτΠϨߦ͔ͬͨ ֮͑ͯΒΕͳ͍
εϚϗΞϓϦ͏ʁ
ΞϓϦ୳͢ͷ ىಈ͢Δͷ ͪΐͬͱखؒ
͡Ό͋ͳΒʁ
࡞ͬͨ https://www.amazon.co.jp/Hidetaka-Okamoto-Ͷ͜Ζ͙/dp/B07G6ZVCC9/
Ͱ࣌ؒΛهɾ֬ೝͰ͖Δ • ࣗɹɹʮΞϨΫαɺͶ͜Ζ͙Ͱهʯ • ΞϨΫαʮ͓ͬ͜͠Ͱ͔͢ʁ͏ΜͪͰ͔͢ʁʯ • ࣗɹɹʮ͓ͬ͜͠ʯ • ΞϨΫαʮ࣌ؒΛه͠·ͨ͠ɻࠓ2ճͰ͢ʯ
Ͱ࣌ؒΛهɾ֬ೝͰ͖Δ • ࣗɹɹʮΞϨΫαɺͶ͜Ζ͙Ͱ֬ೝʯ • ΞϨΫαʮࠓ2ճͰ͢ɻ9࣌XXʹ͓ͬ͜͠Λʙʯ
͜ΕͰউͯΔ
͜ΕͰউͯΔ ͱݶΒͳ͔ͬͨ
ʮ֬ೝʯ͕ඍົ
Ͱཤྺ֬ೝָ͘͠ͳ͍ • ࣌ؒͱ͓ͬ͜͠ or ͏ΜͪΛಡΈ্͛ΒΕͯɾɾɾ • ʮࠓԿճͯ͠Δ͔ʯ͕࠷ݶΘ͔Ε͍͍ • ͦΕ͘Β͍ͳΒهͨ࣌͠ʹݴ͍͍͑ΑͶ •
-> ֬ೝίϚϯυͷଘࡏҙٛͱɾɾɾ
PlayToiletHistory1/4͘Β͍͔͠ΘΕͯͳ͍
ͰΈ͍ͨ࣌͋Δ
ը໘ͩ
React + Mobile HubͰwebΞϓϦ https://app.getnekolog.com/
ΞϓϦˍεΩϧͷߏਤ
Tips
ΞϓϦɾεΩϧ྆ํల։ͳΒaws-sdkඞਢ • ask-sdkʹDynamoDBͷϔϧύʔ͕͋Δ • ςʔϒϧ࡞PUT / GETͷϥούʔͱͯ͑͠Δ • ͨͩ͠ϓϥΠϚϦ͕AlexaͷϢʔβʔID •
ΞϓϦ͔ΒσʔλΛೖΕΔͷʹۤ࿑͢Δ • ϓϥΠϚϦΛUUIDʹͯ͠ɺGISͰΫΤϦ͕ଟϕλʔ
ΈΜͳ͓͏DynamoDB • ࡞ͬͯΔ࣌ʮผʹอଘ͢Δσʔλͱ͔ͳ͍͠ɾɾɾʯ • ͬͯΔ࣌ʮຖճಉ͜͡ͱݴ͏ͷΊΜͲ͍ʯ • ϔϧύʔ͑؆୯ʹDB͑Δ • ར༻ճͱ͔ɺΑ͘ݴ͏༰Λه͓ͯ͜͠͏ •
Ͳ͏͍͍ͤͩͨແྉͰ͓͞·Δʢͣʣ
ask-sdkͰσʔλΛอଘ͢Δ async handle(handlerInput) { // σʔλͷอଘ const persistentAttributes = {
name: '͓͔ͱ', age: 28 } ɹconst { attributesManager } = handlerInput await attributesManager.setPersistentAttributes(persistentAttributes) await attributesManager.savePersistentAttributes() … // σʔλͷऔΓग़͠ const atts = await attributesManager.getPersistentAttributes() const { name, age } = atts …. }
ask-sdkͰσʔλΛอଘ͢Δ async handle(handlerInput) { // σʔλͷอଘ const persistentAttributes = {
name: '͓͔ͱ', age: 28 } ɹconst { attributesManager } = handlerInput await attributesManager.setPersistentAttributes(persistentAttributes) await attributesManager.savePersistentAttributes() … // σʔλͷऔΓग़͠ const atts = await attributesManager.getPersistentAttributes() const { name, age } = atts …. }
ask-sdkͰσʔλΛอଘ͢Δ async handle(handlerInput) { // σʔλͷอଘ const persistentAttributes = {
name: '͓͔ͱ', age: 28 } ɹconst { attributesManager } = handlerInput await attributesManager.setPersistentAttributes(persistentAttributes) await attributesManager.savePersistentAttributes() … // σʔλͷऔΓग़͠ const atts = await attributesManager.getPersistentAttributes() const { name, age } = atts …. }
aws-sdk & ask-utilsͰσʔλΛอଘ͢Δ const AWS = require('aws-sdk') const { getUserId
} = require('ask-utils') const dynamoDB = new AWS.DynamoDB.DocumentClient() const TableName = 'MyExampleDB' const SaveProfileHandler = { … async handle(handlerInput) { const userId = getUserId(handlerInput) const params = { TableName, Item: { id: userId, } } await dynamoDB.put(params).promise() ... } }
aws-sdk & ask-utilsͰσʔλΛอଘ͢Δ const AWS = require('aws-sdk') const { getUserId
} = require('ask-utils') const dynamoDB = new AWS.DynamoDB.DocumentClient() const TableName = 'MyExampleDB' const SaveProfileHandler = { … async handle(handlerInput) { const userId = getUserId(handlerInput) const params = { TableName, Item: { id: userId, } } await dynamoDB.put(params).promise() ... } }
aws-sdk & ask-utilsͰσʔλΛอଘ͢Δ const AWS = require('aws-sdk') const { getUserId
} = require('ask-utils') const dynamoDB = new AWS.DynamoDB.DocumentClient() const TableName = 'MyExampleDB' const SaveProfileHandler = { … async handle(handlerInput) { const userId = getUserId(handlerInput) const params = { TableName, Item: { id: userId, } } await dynamoDB.put(params).promise() ... } }
DynamoDBΛ͍͜ͳ͢ͳͲ https://developer.amazon.com/alexa-skills-kit/make-money/in-skill-purchasing
2018/10/08 (݄) 11:00ʙ17:00: ٕज़ॻయ̑ https://techbookfest.org/event/tbf05