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
130
LINE x obnizハンズオン
kido
August 29, 2018
Tweet
Share
More Decks by kido
See All by kido
vonageハッカソン:obnizテクノロジーサポート
9wick
0
23
ハードウェアを動かすTypeScriptの世界
9wick
3
1.9k
HackRockFes2023テクニカルサポート obniz
9wick
0
74
極寒IoT
9wick
0
1.3k
ドミノ倒し.pdf
9wick
0
940
sony MESHとKintoneとobnizでドミノ倒しIoT
9wick
0
170
bit.Connect 2021サポート
9wick
0
160
基礎代謝を測るIoT
9wick
0
520
obniz テクニカルサポート
9wick
0
160
Other Decks in Technology
See All in Technology
OpenID BizDay#17 KYC WG活動報告(法人) / 20250219-BizDay17-KYC-legalidentity
oidfj
0
250
分解して理解する Aspire
nenonaninu
1
300
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
6
57k
JEDAI Meetup! Databricks AI/BI概要
databricksjapan
0
150
自動テストの世界に、この5年間で起きたこと
autifyhq
10
8.6k
抽象化をするということ - 具体と抽象の往復を身につける / Abstraction and concretization
soudai
20
8.1k
【Developers Summit 2025】プロダクトエンジニアから学ぶ、 ユーザーにより高い価値を届ける技術
niwatakeru
2
1.4k
クラウドサービス事業者におけるOSS
tagomoris
2
860
偶然 × 行動で人生の可能性を広げよう / Serendipity × Action: Discover Your Possibilities
ar_tama
1
1.1k
Platform Engineeringは自由のめまい
nwiizo
4
2.1k
室長と気ままに学ぶマイクロソフトのビジネスアプリケーションとビジネスプロセス
ryoheig0405
0
370
Swiftの “private” を テストする / Testing Swift "private"
yutailang0119
0
130
Featured
See All Featured
Building Applications with DynamoDB
mza
93
6.2k
Scaling GitHub
holman
459
140k
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
Optimising Largest Contentful Paint
csswizardry
34
3.1k
We Have a Design System, Now What?
morganepeng
51
7.4k
A Tale of Four Properties
chriscoyier
158
23k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
4
410
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.3k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
49
2.3k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
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͚ͭͯ Ͷ͐Ϋϩʔόɼ͓ӡΜͰ
͘͘λΠϜʗ࣭λΠϜ • ࣗ༝ʹίʔυΛ͍ͬͯ͡ΈͨΓɼਫ਼ಡͯ͠ΈͨΓ͍ͯͩ͘͠͞ • ࣭େܴͰ͢ɽपΓͷελοϑʹฉ͍͍ͯͩ͘͞