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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
kido
August 29, 2018
Technology
160
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
LINE x obnizハンズオン
kido
August 29, 2018
More Decks by kido
See All by kido
obnizテクニカルサポート
9wick
0
89
vonageハッカソン:obnizテクノロジーサポート
9wick
0
85
ハードウェアを動かすTypeScriptの世界
9wick
3
2.7k
HackRockFes2023テクニカルサポート obniz
9wick
0
140
極寒IoT
9wick
0
1.4k
ドミノ倒し.pdf
9wick
0
1.2k
sony MESHとKintoneとobnizでドミノ倒しIoT
9wick
0
280
bit.Connect 2021サポート
9wick
0
250
基礎代謝を測るIoT
9wick
0
650
Other Decks in Technology
See All in Technology
AIとペアプロを始める。人とのペアプロをやめる。ペアプロの良さを改めて知る。もっと好きになった。 / Rediscovering Pair Programming
honyanya
1
140
DINO-EdgeQuery:Edge-First Polygon Decoding for Building Footprint Extraction from Satellite Imagery
lehupa
0
130
振り返りこそエンジニアの本領
negima
0
230
[RSJ26] Building a VLA Model Based on Self-Distilled Classification
keio_smilab
PRO
0
180
Genie Code ワークショップ 基礎編 / Genie-Code-Workshop-fundamental
databricksjapan
PRO
0
310
Backstageでつくるセルフサービスな社内開発基盤
kikunosuke75
1
220
PfEingのアプローチで働こう
rindrics
0
120
Benchmarking Vector Databases: pgvector vs. LanceDB
tsho
0
130
GuardDuty 検知対応を DevOps Agent で効率化しようとしている話 / GuardDuty Investigations with DevOps Agent
masahirokawahara
1
230
Continuous Delivery! It is not what you think it is
tdpauw
0
180
データエンジニアの困りごとをDevinと一緒に解消する
10xinc
2
740
Nav2、Nav3 ... はたまた自作?〜 作って理解する Nav3 の設計意図 〜 / Nav2, Nav3 ... or Build Your Own? — Understanding Nav3's design intent by building it from scratch
yanzm
0
180
Featured
See All Featured
Fireside Chat
paigeccino
42
4k
Being A Developer After 40
akosma
91
590k
Visualization
eitanlees
152
17k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
4.6k
ラッコキーワード サービス紹介資料
rakko
1
4.7M
Game over? The fight for quality and originality in the time of robots
wayneb77
1
260
Building Adaptive Systems
keathley
44
3.2k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
680
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
480
The agentic SEO stack - context over prompts
schlessera
0
880
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
290
Designing for humans not robots
tammielis
254
26k
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͚ͭͯ Ͷ͐Ϋϩʔόɼ͓ӡΜͰ
͘͘λΠϜʗ࣭λΠϜ • ࣗ༝ʹίʔυΛ͍ͬͯ͡ΈͨΓɼਫ਼ಡͯ͠ΈͨΓ͍ͯͩ͘͠͞ • ࣭େܴͰ͢ɽपΓͷελοϑʹฉ͍͍ͯͩ͘͞