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
140
LINE x obnizハンズオン
kido
August 29, 2018
Tweet
Share
More Decks by kido
See All by kido
obnizテクニカルサポート
9wick
0
27
vonageハッカソン:obnizテクノロジーサポート
9wick
0
53
ハードウェアを動かすTypeScriptの世界
9wick
3
2.2k
HackRockFes2023テクニカルサポート obniz
9wick
0
110
極寒IoT
9wick
0
1.3k
ドミノ倒し.pdf
9wick
0
1.1k
sony MESHとKintoneとobnizでドミノ倒しIoT
9wick
0
230
bit.Connect 2021サポート
9wick
0
210
基礎代謝を測るIoT
9wick
0
580
Other Decks in Technology
See All in Technology
Azure Well-Architected Framework入門
tomokusaba
1
150
組織全員で向き合うAI Readyなデータ利活用
gappy50
5
1.9k
入院医療費算定業務をAIで支援する:包括医療費支払い制度とDPCコーディング (公開版)
hagino3000
0
130
20251024_TROCCO/COMETAアップデート紹介といくつかデモもやります!_#p_UG 東京:データ活用が進む組織の作り方
soysoysoyb
0
140
ストレージエンジニアの仕事と、近年の計算機について / 第58回 情報科学若手の会
pfn
PRO
4
920
パフォーマンスチューニングのために普段からできること/Performance Tuning: Daily Practices
fujiwara3
2
180
プレイドのユニークな技術とインターンのリアル
plaidtech
PRO
1
560
serverless team topology
_kensh
3
250
IBC 2025 動画技術関連レポート / IBC 2025 Report
cyberagentdevelopers
PRO
2
230
Amazon Athena で JSON・Parquet・Iceberg のデータを検索し、性能を比較してみた
shigeruoda
1
270
SOTA競争から人間を超える画像認識へ
shinya7y
0
650
CLIPでマルチモーダル画像検索 →とても良い
wm3
2
670
Featured
See All Featured
Scaling GitHub
holman
463
140k
It's Worth the Effort
3n
187
28k
How to Ace a Technical Interview
jacobian
280
24k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.7k
RailsConf 2023
tenderlove
30
1.3k
The World Runs on Bad Software
bkeepers
PRO
72
11k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.6k
The Cost Of JavaScript in 2023
addyosmani
55
9.1k
Navigating Team Friction
lara
190
15k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.7k
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͚ͭͯ Ͷ͐Ϋϩʔόɼ͓ӡΜͰ
͘͘λΠϜʗ࣭λΠϜ • ࣗ༝ʹίʔυΛ͍ͬͯ͡ΈͨΓɼਫ਼ಡͯ͠ΈͨΓ͍ͯͩ͘͠͞ • ࣭େܴͰ͢ɽपΓͷελοϑʹฉ͍͍ͯͩ͘͞