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
LINE x obnizハンズオン
Search
kido
August 29, 2018
Technology
0
120
LINE x obnizハンズオン
kido
August 29, 2018
Tweet
Share
More Decks by kido
See All by kido
HackRockFes2023テクニカルサポート obniz
9wick
0
39
極寒IoT
9wick
0
1.1k
ドミノ倒し.pdf
9wick
0
700
sony MESHとKintoneとobnizでドミノ倒しIoT
9wick
0
96
bit.Connect 2021サポート
9wick
0
97
基礎代謝を測るIoT
9wick
0
390
obniz テクニカルサポート
9wick
0
120
サウナIoTのための最初の0.5歩
9wick
0
530
サウナIoTのための最初の0.1歩
9wick
0
530
Other Decks in Technology
See All in Technology
検証からプロダクトへ: シームレスなLLM開発の ためのしくみ作り
nunukim
1
110
マイクロサービス環境におけるDB戦略 in DMMプラットフォーム
pospome
11
3k
私のRSpecの書き方 / How I write RSpec
tmtms
4
820
データ化エンジニアとしての1年を振り返る
sansantech
PRO
3
250
TCA入門したてなので、自分が馴染みのある実装と比較しながらキャッチアップしてみる
fumiyasac0921
1
370
学生としてRSGT2024に参加して得られた学び / Lessons learned from participating in RSGT2024 as a student
fujiemon
0
110
LLMプロダクト事業の立ち上げにおける挑戦
layerx
PRO
7
1.4k
MongoDB Atlas Vectorsearchではじめる生成AIアプリ開発
chie8842
3
500
初心者が行く!サーバレスWebアプリ開発の道
nagaharutogawa
0
440
Autopsy of a Cascading Outage from a MySQL Crashing Bug
jfg956
0
200
Autify Company Deck
autifyhq
1
30k
継続的テストモデルを実現するためにスリーアミーゴスを用いた10Xでのシフトレフトの事例
nihonbuson
3
130
Featured
See All Featured
BBQ
matthewcrist
78
8.7k
Side Projects
sachag
451
41k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
18
1.7k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
8
8.2k
The Invisible Side of Design
smashingmag
293
49k
The Art of Programming - Codeland 2020
erikaheidi
40
12k
The Invisible Customer
myddelton
114
12k
Being A Developer After 40
akosma
56
580k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
28
5.9k
No one is an island. Learnings from fostering a developers community.
thoeni
14
2k
What's in a price? How to price your products and services
michaelherold
236
11k
Fontdeck: Realign not Redesign
paulrobertlloyd
75
4.8k
Transcript
ՆͷऴΘΓͷۦ͚ࠐΈϋϯζΦϯ
ΞδΣϯμ 19:00ʙɹ͡Ίʹ ɹLINE BOOT AWARDSɹ/ Clovaʹ͍ͭͯ ɹobnizʹ͍ͭͯ 19:20ʙɹϋϯζΦϯ 21:20ʙɹ͘͘λΠϜʗ࣭λΠϜɹ
͡Ίʹ LINE BOOT AWARDS / Clova ʹ͍ͭͯ
obnizͬͯͳʹʁ
ϋʔυΣΞʢిࢠճ࿏ʣΛ ωοτ͔Βૢ࡞͢Δ͜ͱ͕Ͱ͖Δ։ൃϘʔυͰ͢ ωοτ͔Βૢ࡞Ͱ͖Δ ʹ ԻεΩϧͱ૬ੑ͕ྑ͍Ͱ͢ ͱͳʹ͔
ͱͳʹ͔ • ిؾ৴߸ΛAPIͱ੍ͯ͠ޚͰ͖ΔIoT։ൃϘʔυ wifiͰৗ࣌ଓ ϢʔβʔϓϩάϥϜ ηϯαʗϞʔλʔ
ͱͳʹ͔ • ిؾ৴߸ΛAPIͱ੍ͯ͠ޚͰ͖ΔIoT։ൃϘʔυ wifiͰৗ࣌ଓ ϢʔβʔϓϩάϥϜ ᶃAPIͰΫϥυ ίϚϯυૹ৴ ηϯαʗϞʔλʔ
ͱͳʹ͔ • ిؾ৴߸ΛAPIͱ੍ͯ͠ޚͰ͖ΔIoT։ൃϘʔυ wifiͰৗ࣌ଓ ϢʔβʔϓϩάϥϜ ᶃAPIͰΫϥυ ίϚϯυૹ৴ ηϯαʗϞʔλʔ ᶄίϚϯυʹԠͯ͡ ηϯαʗϞʔλʔΛ੍ޚ
ͱͳʹ͔ • ిؾ৴߸ΛAPIͱ੍ͯ͠ޚͰ͖ΔIoT։ൃϘʔυ wifiͰৗ࣌ଓ ϢʔβʔϓϩάϥϜ ᶃAPIͰΫϥυ ίϚϯυૹ৴ ᶅ੍ޚ݁Ռ͕ ؼͬͯ͘Δ ηϯαʗϞʔλʔ
ᶄίϚϯυʹԠͯ͡ ηϯαʗϞʔλʔΛ੍ޚ
ͱͳʹ͔ • ిؾ৴߸ΛAPIͱ੍ͯ͠ޚͰ͖ΔIoT։ൃϘʔυ • APIͷࣝͱηϯαʗϞʔλʔͷ͚ࣝͩͰ IoTΛ࡞Δ͜ͱ͕Ͱ͖Δ wifiͰৗ࣌ଓ ϢʔβʔϓϩάϥϜ ᶃAPIͰΫϥυ ίϚϯυૹ৴
ᶅ੍ޚ݁Ռ͕ ؼͬͯ͘Δ ηϯαʗϞʔλʔ ᶄίϚϯυʹԠͯ͡ ηϯαʗϞʔλʔΛ੍ޚ
obnizͱClovaΛ࿈ܞͤ͞Δͱɾɾɾ ϋʔυΣΞͱԻͰ͍Ζ͍ΖͰ͖ͪΌ͍·͢ʂ Ͷ͐Ϋϩʔόɼΰϛശ։͚ͯ Ͷ͐ΫϩʔόɼτΠϨ୭͔ೖͬͯΔʁ Ͷ͐ΫϩʔόɼΧʔςϯ։͚ͯ Ͷ͐Ϋϩʔόɼ૭͠·ͬͯΔʁ
ϋϯζΦϯʹ ೖ͍͖ͬͯ·͠ΐ͏ʂ
࠷ॳʹ • ৼΓฦΓʗίϐϖ༻ʹ͓͍͍ͩ͘͞ →͜ͷURLΛݟ·͠ΐ͏ɹͱ͍͏ͷ͕ͨ͘͞Μ͋Γ·͢ • ਐߦεϐʔυશһʹ߹ΘͤͯਐΊ·͢ • ઌʹਐΊΔਓɼࢿྉΛݟͳ͕ΒઌʹਐΜͰ͍͍ͨͩͯେ ৎͰ͢ʂ •
πΠʔτେܴͰ͢ɹ#obniz #linebootawards
ࠓճ࡞Δͷ લ͢͢Ίʂ ͏͖͝·͢ ΫϩʔόʔͰಈ͘ंɼΫϩʔόɾϥδίϯΛ࡞Γ·͢
ࠓճ࡞Δͷ IUUQTZPVUVCF32Z2SU[ND
صͷ্ʹ͋Γ·͔͢ʁ • obniz • LED • Ϟʔλʔ • ڑηϯα •
൘ • Clova • ྆໘ςʔϓ • ϞόΠϧόοςϦʔ • PC • USBέʔϒϧ (Micro Bࢠ) Ϩϯλϧ/1ਓ1ݸ ࣋ͪ Ϩϯλϧ/ਓͰγΣΞ ˞Ϩϯλϧճऩ͠·͢ͷͰɼஸೡʹѻ͍ͬͯͩ͘͞
obnizΛ ৮ͬͯΈΑ͏ʂ
obnizͷwifiΛઃఆ͠Α͏ • https://obniz.io/doc/quickstart ͷStep2ΛΓ·͢ • ·ͣobnizͷిݯΛೖΕɼ wifiΛબ͠·͢ • ύεϫʔυΛ̍จࣈͣͭೖྗ͠·͢
WIFIใ ɹɹSSID : ɹɹPASSWORD : ※ձͰͷΈදࣔ
ಈ࡞֬ೝ • QRίʔυ͕ग़ͨΒɼhttps://obniz.io/doc/quickstart ͷ Step3ɼఱؾ༧ใΛදࣔͯ͠ΈΑ͏
obnizͷαϯϓϧϓϩάϥϜΛࢼͯ͠ΈΑ͏ • LEDνΧΛͯ͠ΈΑ͏ https://obniz.io/doc/lessons_turning_on_led • ڑηϯαʔͰ༡ΜͰΈΑ͏ https://obniz.io/sdk/parts/GP2Y0A21YK0F/ https://obniz.io/explore/35
node.js͔ΒͬͯΈ·͠ΐ͏ 1. node.jsΛμϯϩʔυɾΠϯετʔϧ 2. ຊ൪ڥͷߏங 3. ϩʔΧϧͰ࡞ɾςετ 4. σϓϩΠ 5.
ຊ൪ڥͰ࣮ߦ
node.js͔ΒͬͯΈ·͠ΐ͏ 1. node.jsΛμϯϩʔυɾΠϯετʔϧ 2. ຊ൪ڥͷߏங 3. ϩʔΧϧͰ࡞ɾςετ 4. σϓϩΠ 5.
ຊ൪ڥͰ࣮ߦ ͜ΕΒෆཁͰ͢
node.js͔ΒͬͯΈ·͠ΐ͏ 1. node.jsΛμϯϩʔυɾΠϯετʔϧ 2. ຊ൪ڥͷߏங 3. ϩʔΧϧͰ࡞ɾςετ 4. σϓϩΠ 5.
ຊ൪ڥͰ࣮ߦ ͜ΕΒෆཁͰ͢ 3VOLJUͰ ͚ͩ͜͜Γ·͢ node.jsͩͱͯ͠ڥߏஙෆཁͰ͓खܰʹΓ·͠ΐ͏
Runkitͱ Runkitnode.jsΛ͙͢ʹαʔόʔͰಈ͔ͤΔαʔϏεͰ͢ɽ • ڥߏஙࡁΈͳͷͰɼnode.jsΛͪΐͬ͜ͱ͓ࢼ͍ͨ͠͠ͱ͖ʹ ͍͍ͯ·͢ɽ • ؆୯ͳΞϓϦΛ࡞Δ͜ͱ͕Ͱ͖·͢ • endpointʢHTTPSαʔόʔʣ࡞Δ͜ͱ͕Ͱ͖·͢
RunkitͰಈ͔͢ͱ͖ͷϑϩʔ ෦ obniz on Ϣʔβʔ HTTPϦΫΤετૹ৴ obnizͱଓ ଓྃ “motor move“Λ
“io0 5V"ʹม ίϚϯυड৴ io0Λ5Vʹ͢Δ ಈ͘ Ϩεϙϯεฦ͢ “io0 5V”Λૹ৴ Ϩεϙϯεडྖ
node.js͔ΒͬͯΈ·͠ΐ͏ https://runkit.com/ ʹϩάΠϯ͠·͢ ※macͷsafariͩͱຊޠจࣈೖྗ͕Ͱ͖ͳ͍͜ͱ͕͋ΔͷͰɼ Chrome, FirefoxΛ͓͢͢Ί͠·͢
node.js͔ΒͬͯΈ·͠ΐ͏ ͪ͜ΒͷίʔυΛClone͠·͢ https://runkit.com/9wick/obniz-express-base-code
node.js͔ΒͬͯΈ·͠ΐ͏ obniz id͚ͩॻ͖͑ͯɼendpointϘλϯΛԡ͠·͢
ϞʔλʔΛnode.js͔Βಈ͔͢ λΠϠͱϞʔλʔΛͭͳ͛ͯɼobnizʹ͠·͢ 0൪pinͱ1൪pinʹͭͳ͗·͢
ϞʔλʔΛnode.js͔Βಈ͔͢ ϞʔλʔΛ̍ඵ͚ͩલʹಈ͔͠·͢ IUUQTSVOLJUDPNXJDLPCOJ[ FYQSFTTNPUPSDPEF
ClovaΛ ৮ͬͯΈΑ͏ʂ
Clova + Runkit+obnizͷϑϩʔ obniz on Clova ʮલʹਐΊʯ obnizͱଓ ଓྃ “motor
move“Λ “io0 5V"ʹม ίϚϯυड৴ io0Λ5Vʹ͢Δ ಈ͘ Ϩεϙϯεฦ͢ “io0 5V”Λૹ৴ ʮલʹਐΈ·͢ʯ σόΠε ԻΛղੳͯ͠ httpϦΫΤετૹ৴ σόΠεʹૹ৴ HTTPϦΫΤετΛղੳ ෦
clova + Runkit+obnizͷϑϩʔ obniz on Clova ʮલʹਐΊʯ obnizͱଓ ଓྃ “motor
move“Λ “io0 5V"ʹม ίϚϯυड৴ io0Λ5Vʹ͢Δ ಈ͘ Ϩεϙϯεฦ͢ “io0 5V”Λૹ৴ ʮલʹਐΈ·͢ʯ σόΠε ԻΛղੳͯ͠ httpϦΫΤετૹ৴ σόΠεʹૹ৴ HTTPϦΫΤετΛղੳ ͜Ε͔Β࡞Δ෦ ઌఔମݧͨ͠෦ ෦
LINE Clovaͷઃఆ ىಈ͠·ͨ͠ લʹ͢͢Ί લʹਐΈ·͢ ΫϩʔόɾϥδίϯΛىಈͯ͠
LINE Clovaͷઃఆ ΫϩʔόɾϥδίϯΛىಈͯ͠ ΞϓϦ໊ ɾεϩοτ(ҙ୯ޠͷॴ) ɾεϩοτλΠϓ ʢͲΜͳ୯ޠ͕ೖΔ͔) લʗޙΖ Πϯςϯτʢจʣ ىಈ͠·ͨ͠
લʹ͢͢Ί લʹਐΈ·͢ ্هΛͯ͢Web্Ͱొ͍͖ͯ͠·͢ ※ฦnode.jsͰॻ͍͍͖ͯ·͢
LINE Clovaͷઃఆ(ΞϓϦͷొ) ΞϓϦͷొΛ͠·͠ΐ͏ https://clova-developers.line.me/
LINE Clovaͷઃఆ(ΞϓϦͷొ) ϩάΠϯ͠·͢
LINE Clovaͷઃఆ(ΞϓϦͷొ) εΩϧνϟωϧΛ࡞͠·͢
LINE Clovaͷઃఆ(ΞϓϦͷొ) ϓϩόΠμʢऀʣΛબʗ࡞͠·͢
LINE Clovaͷઃఆ(ΞϓϦͷొ) νϟωϧ໊Λࢦఆͯ͠࡞͠·͢ νϟωϧ໊ɿΫϩʔόɾϥδίϯ ࣍ͷը໘ͦͷ··Create͠·͢
LINE Clovaͷઃఆ(ΞϓϦͷొ) νϟωϧͷجຊઃఆΛ͠·͢ ࡞ϘλϯΛԡͯ͠อଘ͍ͯͩ͘͠͞ λΠϓ ΧελϜ &YUFOTJPO*% υϝΠϯͷٯॱ FYJPPCOJ[TLJM εΩϧ໊
Ϋϩʔόɾϥδίϯ ݺͼग़໊͠ ϝΠϯ Ϋϩʔόϥδίϯ ݺͼग़໊͠ αϒ ϥδίϯ "VEJP1MBZFSͷ༻ ͍͍͑ ఏڙऀ۠ ݸਓ ఏڙऀ໊ ࣗͷ໊લ ୲ऀϝʔϧΞυϨε ࣗͷΞυϨε &YUFOTJPOͱ࿈ܞ͢Δ -*/&ͷΞΧϯτ બ͠ͳ͍
LINE Clovaͷઃఆ(ରϞσϧͷొ) ԻϫʔυͷొΛ͠·͢ʢ͔͜͜Β͕ຊ൪ʂʣ ʮεΩϧઃఆʯϘλϯΛԡ͠·͢
LINE Clovaͷઃఆ(ରϞσϧͷొ) ରϞσϧͷमਖ਼Λԡ͠·͢
LINE Clovaͷઃఆ(ରϞσϧͷొ) ରϞσϧͷฤूը໘͕ग़͖ͯ·͢
LINE Clovaͷઃఆ ΞϓϦ໊ ɾεϩοτ(ҙ୯ޠͷॴ) ɾεϩοτλΠϓ ʢͲΜͳ୯ޠ͕ೖΔ͔) લʗޙΖ Πϯςϯτʢจʣ ΠϯςϯτͱεϩοτͱεϩοτλΠϓͰ ࠞཚ͠ͳ͍Α͏ʹɾɾɾ
ىಈ͠·ͨ͠ લʹ͢͢Ί લʹਐΈ·͢ ΫϩʔόɾϥδίϯΛىಈͯ͠
LINE Clovaͷઃఆ(ରϞσϧͷొ) εϩοτͷొΛ͠·͠ΐ͏ ΧελϜεϩοτλΠϓͷ ՃϘλϯΛԡ͠·͢ ɾεϩοτ(Ґஔ) ɾεϩοτλΠϓ (୯ޠ) Πϯςϯτ ʮલ͢͢Ίʯ
LINE Clovaͷઃఆ(ରϞσϧͷొ) ໊લΛ͚ͭͯεϩοτλΠϓΛ࡞͠·͢ εϩοτλΠϓ໊ɿDirectionSlotType ɾεϩοτ(Ґஔ) ɾεϩοτλΠϓ (୯ޠ) Πϯςϯτ ʮલ͢͢Ίʯ
LINE Clovaͷઃఆ(ରϞσϧͷొ) εϩοτλΠϓͷ୯ޠΛೖྗ͠·͢ લʗޙΖΛೖྗ͠·͠ΐ͏ ॻ͖ऴΘͬͨΒอଘ͠·͢ ɾεϩοτ(Ґஔ) ɾεϩοτλΠϓ (୯ޠ) Πϯςϯτ ʮલ͢͢Ίʯ
LINE Clovaͷઃఆ ΠϯςϯτͷొΛ͠·͠ΐ͏ ΠϯςϯτͷՃϘλϯΛԡ͠·͢ ɾεϩοτ(Ґஔ) ɾεϩοτλΠϓ (୯ޠ) Πϯςϯτ ʮલ͢͢Ίʯ
LINE Clovaͷઃఆ ໊લΛ͚ͭͯΧελϜΠϯςϯτΛ࡞͠·͢ Πϯςϯτ໊ɿMoveIntent ɾεϩοτ(Ґஔ) ɾεϩοτλΠϓ (୯ޠ) Πϯςϯτ ʮલ͢͢Ίʯ
LINE Clovaͷઃఆ αϯϓϧରϦετʹՃ͠·͢ ରϦετɿલಈ͚ ϥδίϯ ɾεϩοτ(Ґஔ) ɾεϩοτλΠϓ (୯ޠ) Πϯςϯτ ʮલ͢͢Ίʯ
LINE Clovaͷઃఆ ରϦετͷʮલʯͷ෦Λυϥοάͯ͠ɼεϩοτԽ͠·͢ εϩοτ໊:DirectionSlot ɾεϩοτ(Ґஔ) ɾεϩοτλΠϓ (୯ޠ) Πϯςϯτ ʮલ͢͢Ίʯ
LINE Clovaͷઃఆ DirectionSlotͷλΠϓΛDirectionSlotTypeʹઃఆ͠·͢ ઃఆͨ͠ΒอଘϘλϯΛԡ͠·͢ ɾεϩοτ(Ґஔ) ɾεϩοτλΠϓ (୯ޠ) Πϯςϯτ ʮલ͢͢Ίʯ
LINE Clovaͷઃఆ ઃఆͰ͢ʂ ϏϧυϘλϯΛԡ͠·͠ΐ͏ʢɿ݁ߏ͔͔࣌ؒΓ·͢ 15͙Β͍ʣ
ϋʔυΣΞ࡞ Ϗϧυ͍ͯ͠ΔؒʹϋʔυΣΞͱnode.jsଆΛ࡞Γ·͠ΐ͏ λΠϠͱϞʔλʔΛͭͳ͛ͯɼobnizʹ͠·͢
ϋʔυΣΞ࡞ ̎ͭಉ͡Α͏ʹ͠·͢
ϋʔυΣΞ࡞ ྆໘ςʔϓͰ൘ʹࢭΊͨΒͰ͢ obnizͱέʔϒϧదʹͱΊ͍ͯͩ͘͞
node.jsͷ࡞ ίʔυΛΫϩʔϯͯ͠ɼURLͷൃߦʗొΛ͠·͠ΐ͏ https://runkit.com/9wick/obniz-x-line-clova-base-code
LINE Clovaͷઃఆ RunkitͰclovaExtensionIdͱyourObnizIdΛઃఆ͠·͢ clovaExtensionIdج ຊઃఆͰઃఆͨ͠ͷͰ ͢
node.jsͷ࡞ ClovaʹendpointͷURLΛొ͠·͢ ɾendpointΛԡͯ͠ɼ৽͍͠λϒͰURLΛ։͖·͢ ɾURLΛίϐʔ͠·͢ ˞ʮCannot GET /ʯͱग़·͕͢ɼؾʹ͠ͳͯ͘େৎͰ͢ (ϒϥβ͔Βͷ௨ৗͷϦΫΤετʹରԠ͍ͯ͠ͳ͍ΤϥʔͰ͢)
LINE Clovaͷઃఆ ΞϓϦͷجຊใΛमਖ਼͠·͢
LINE Clovaͷઃఆ αʔόʔઃఆΛ͠·͢
LINE Clovaͷઃఆ ExtensionαʔόʔͷURLΛઌఔίϐʔͨ͠URLʹͯ͠อଘ͠·͢
LINE Clovaͷઃఆ Ϗϧυ͕ऴΘΔͷΛͪ·͠ΐ͏ɽɽɽ ͪ࣌ؒͰ؆୯ʹίʔυͷղઆ͠·͢ɽ ղઆ͕ऴΘͬͯϏϧυ͕ऴΘͬͯͳ͔ͬͨΒɼ ઌʹϥδίϯͱͯ͠༡ΜͰ͍ͯͩ͘͞ https://obniz.io/explore/42
LINE Clovaͷઃఆ ςετը໘ʹߦ͖·͢
LINE Clovaͷઃఆ ςετจࣈΛೖྗͯ͠ɼςετ͠·͠ΐ͏ ςετจࣈྻɿલਐΊ ϥδίϯಈ͖·͔ͨ͠ʁ
࣮ػͰςετ ࣮ػͰςετ͠·͠ΐ͏ ClovaͱεϚϗΛඥ͚ͮͯɼClovaΞϓϦ͔Βಈ͔͠·͢ ӈ্ͷઃఆϘλϯ Λબ εΩϧετΞΛબ Ϋϩʔόɾϥδίϯ Λબ ར༻։࢝Λબ
࣮ػͰςετ ClovaʹΛ͔͚ͯΈ·͠ΐ͏ Ͷ͐ΫϩʔόɼΫϩʔόϥδίϯىಈͯ͠ લ͢͢Ί ޙΖ͢͢Ί
͓͔ͭΕ͞·Ͱͨ͠
obniz x ClovaͰͰ͖Δ͜ͱ αʔϘϞʔλΛͬͨεΠονͷΦϯΦϑ ɹ ԹηϯαΛͬͨԹ௨ ɹ ֎ઢϦϞίϯͱͷ࿈ಈ ɹ ϞʔλʔͰཧతͳͷΛಈ͔͢
Ͷ͐Ϋϩʔόɼ෦ͷిؾফͯ͠ Ͷ͐Ϋϩʔόɼ෦ͷԹڭ͑ͯ Ͷ͐ΫϩʔόɼTV͚ͭͯ Ͷ͐Ϋϩʔόɼ͓ӡΜͰ
͘͘λΠϜʗ࣭λΠϜ • ࣗ༝ʹίʔυΛ͍ͬͯ͡ΈͨΓɼਫ਼ಡͯ͠ΈͨΓ͍ͯͩ͘͠͞ • ࣭େܴͰ͢ɽपΓͷελοϑʹฉ͍͍ͯͩ͘͞