Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Twilio Flexで通話録音を実装した話
Search
Katsumi Takahashi
June 30, 2022
Technology
260
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Twilio Flexで通話録音を実装した話
2020/6/30に開催された Twilio UG JPイベントで使用した資料となります。
Katsumi Takahashi
June 30, 2022
More Decks by Katsumi Takahashi
See All by Katsumi Takahashi
kintoneでコミュニケーションDXを実現しよう
mobilebiz
0
230
FileMaker × Vonageの可能性
mobilebiz
0
170
Introduction of Vonage
mobilebiz
0
140
Vonageハッカソン紹介資料
mobilebiz
0
150
VonageHandson in 岡山
mobilebiz
0
140
kintone がビデオ会議システムになる話
mobilebiz
0
170
リアルタイムコミュニケーションのシステムを設計・運用する際のベストプラクティス
mobilebiz
0
130
Vonage概要 Video API
mobilebiz
0
170
Amazon Chime SDK と Vonage Video API の徹底比較
mobilebiz
0
480
Other Decks in Technology
See All in Technology
あるけみー式LTスライド作成術
alchemy1115
2
220
AIで社員の自主発信に広報目線を組み込む
_mossann_t
0
120
その Lambda、8分で 管理者権限まで奪われます
k1nakayama
6
2.9k
バイブコーディング時代のWebアプリ開発入門~Cloud Runで学ぶセキュアなビルドとデプロイ
waiwai2111
1
130
例外の正しい扱い方 そのエラー try-catchして大丈夫?
jinwatanabe
3
510
リアーキテクチャ後の障害ゼロを目指したShadow Testingの取り組み
nihonbuson
PRO
1
140
2026-09-11 【Snowflake World Tour Tokyo 2026】Snowflakeを起点に、AI Agentが自律稼働し続ける未来へ / Driving AI Agents with Snowflake
civitaspo
0
690
DEFCON34-Write-up_HYCu-MYCu
daikiokazaki
0
160
絵ではじめるKubernetesセキュリティ
aoi1
4
660
SREは、MCPとAutopilotをこう使え!
kazumax55
3
870
銀行勘定系システムにおける開発プロセス刷新×AIによる環境モダナイゼーション / Development Process Transformation and AI-Driven Environment Modernization
muit
1
2.3k
映像変換サーバーなしで端末内でHLSを生成してライブ配信
hikarusato
0
120
Featured
See All Featured
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.8k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
430
From π to Pie charts
rasagy
1
370
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
330
The untapped power of vector embeddings
frankvandijk
2
1.9k
Crafting Experiences
bethany
1
340
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
570
Transcript
גࣜձࣾ,%%*Σϒίϛϡχέʔγϣϯζ 5XJMJPΤόϯδΣϦετߴڮࠀݾ 5XJMJP'MFYͰ௨ԻΛ࣮ͨ͠ ൃ৴࣌ͷ௨ҙ֎ͱϋʔυϧߴ͠
גࣜձࣾ,%%*Σϒίϛϡχέʔγϣϯζ ϚʔέςΟϯάຊ෦ ΤόϯδΣϦετ Katsumi Takahashi facebook: katsumi.takahashi Twitter: _katsumi github:
mobilebiz qiita: mobilebiz #赤い芸人 ⾃⼰紹介 6(ΠϕϯτͰͷొஃͻ͞͠ͿΓʔὑ
5XJMJP'MFYͱ
5XJMJP'MFY ϑϧΧελϚΠζ͕ՄೳͳίϯλΫτηϯλʔιϦϡʔγϣϯ 5XJMJPͷ֤छαʔϏεΛΈ߹Θͤͨίϯ λΫτηϯλʔͷ౷߹ιϦϡʔγϣϯɻ طଘͷ֤छ"1*ʹՃ͑ͯɺ'MFY6*͕όϯ υϧ͞Εɺ͙͢ʹ͍࢝ΊΔ͜ͱ͕Ͱ͖ Δ͚ͩͰͳ͘ɺϑϧΧελϚΠζ͕Մೳ Ͱ͢ɻ ֤छσʔλΛੳ͢ΔͨΊͷ'MFY*OTJHIU แؚ͞Ε͍ͯ·͢ɻ
5XJMJP'MFYͱ Ϋϥυ
5XJMJP'MFYͷར ϑϧΧελϚΠζՄೳͳΫϥυίϯλΫτηϯλʔιϦϡʔγϣϯ • 1席から5万席まで対応できるスケーラビリティ • ビデオだけでなく、電話やチャット、SMS、メールなどにも対応 • 電話やSMSを使わなければ、ほぼFlexの利⽤料⾦だけで運⽤可能 • ACDの設定変更やUIの改良など、常に進化させていくことができる
• 業務をシステムに合わせるのではなく、システムを業務に合わせよう 5XJMJP'MFYͱ
'MFYͷར༻ྉ ੮PS࣌ؒʹΑΔ՝ۚϞσϧ τϥΠΞϧΞΧϯτͰɺԁͷϙΠϯτ͕༩͞Ε·͢ɻ ΞΧϯτΛΞοϓάϨʔυ͢Δ͜ͱͰɺ ࣌ؒͷ'MFYར༻Λར༻Ͱ͖ΔΑ͏ʹͳΓ·͢ɻ ༗ྉϓϥϯʢԼهࢀরʣʹΓସ͑Δͱɺ'MFY*OTJHIU͕ར༻Ͱ͖·͢ɻ·ͨɺΓସ͑ޙ ࣌ؒҾ͖ܧ͕ Ε·ͤΜɻ 'MFYͷྉۚʹɺి൪߸ར༻ྉɺൃண৴ྉɺ4.4ૹड৴ྉҎ֎ͷඅ༻ؚ͕·Ε·͢ʢҰ෦ؚ·Εͳ͍ͷ͍͟͝ ·͢ʣɻి൪߸ར༻ྉͳͲҎԼͷͱ͓ΓͰ͢ɻ
5XJMJP'MFYͱ ݄ʙ
%&.0 4BMFTGPSDF 5XJMJP'MFY 5XJMJP'MFYͱ
5XJMJP'MFYʹ͓͚Δ௨Ի
ண৴ʹର͢Δ௨Ի 4JOHMFνϟωϧͰͷԻ w ཧίϯιʔϧ্Ͱઃఆ͢Δ ͜ͱ͕Մೳɻ w 'MFY*OTJHIUTͰͷԻ֬ೝ Ͱ͖·͢ɻ w Ի4JOHMFνϟωϧʢϞϊ
ϥϧʣʹͳΓ·͢ɻ ண৴࣌ͷ௨
ண৴ʹର͢Δ௨Ի %VBMνϟωϧͰͷԻ w 4UVEJPϑϩʔͰ$BMM3FDPSEJOH %VBM Λ։࢝ w 4FOE$BMM5P"HFOUͰ"UUSJCVUFTʹΛઃఆ ͢Δ͜ͱͰ'MFY*OTJHIUTʹදࣔՄೳ ৄ͘͠ɺIUUQTXXXUXJMJPDPNEPDT
fl FYEFWFMPQFSJOTJHIUTFOBCMFEVBMDIBOOFMSFDPSEJOHT ண৴࣌ͷ௨
ൃ৴ͷ௨Ͳ͏͢Δʁ μΠϠϧύουͰൃ৴࣌ɺ4UVEJPϑϩʔܦ༝͠ͳ͍ ཧίϯιʔϧ͔Β'MFY%JBMQBEΛ༗ޮԽ͢Δ͜ͱ͕Ͱ͖·͢ %JBMQBE͕༗ޮʹͳ͍ͬͯΔͱɺը໘্෦ʹΞΠίϯ͕දࣔ͞Ε·͢ ൃ৴࣌ͷ௨
1MVHJOͰରԠͰ͖ͦ͏ʂ 5XJMJPͷαϙʔτϖʔδʹͦΕΒ͖͠هࡌ w "DUJPO'SBNFXPSLͰɺ "DDFQU5BTLΠϕϯτΛ)PPL w QBZMPBEҾʹ͋Δ DPOGFSFODF0QUJPOTSFDPSE ΛUSVFʹ͢ΔͱԻͰ͖Δ w
$POGFSFODFͷԻػೳΛͬ ͯԻ͢Δख๏ͳͷͰɺ%VBM ʹରԠͰ͖ͳ͍͠ɺ*OTJHIUTʹ ग़ͯ͜ͳ͍ʢٽʣ IUUQTTVQQPSUUXJMJPDPNIDFOVTBSUJDMFT$BMM3FDPSEJOHXJUI5XJMJP'MFY ൃ৴࣌ͷ௨
࣌ؒΛඅ͠ɺ ৺͕ંΕͦ͏ʹͳΔ ൃ৴࣌ͷ௨
ͦ͏ͩʂ3FDPSEJOH"1*Λ͓͏ 3FDPSEJOH"1*Ͱɺ௨தͷίʔϧʹରͯ͠%VBMԻ͕Ͱ͖Δʂ ඞཁͳͷ$BMM4JE ͖͞΄Ͳͷϔϧϓهࣄʹ͋ͬͨɺ"DUJPO'SBNFXPSLΛ͑5BTLͷใ͕ͱΕΔ͔ Βɺ͔ͦ͜ΒDPOGFSFODF͕औΕͯɺඞવతʹ$BMM4JEऔΕΜ͡ΌͶʁ ൃ৴࣌ͷ௨
"DUJPO'SBNFXPSLͱ 'MFY6*Λߏ͢ΔҰͭͷ෦ ൃ৴࣌ͷ௨
"DUJPO'SBNFXPSL 'MFY্ͷಈ࡞Λఆ͍ٛͯ͠ΔϑϨʔϜϫʔΫ 'MFY6*ৗʹΠϕϯτσʔλΛൃ৴͠ɺϢʔβ ʔ͕'MFY6*ͱͲͷΑ͏ʹ૬ޓ࡞༻͍ͯ͠Δ͔Λ هड़͍ͯ͠·͢ɻϓϥάΠϯΛ࡞͢Δࡍɺ "DUJPOT'SBNFXPSLΛ༻͢Δͱɺ͜ΕΒͷ ΠϕϯτΛར༻͠ɺ'MFY6*$3.σʔλɺ· ͨͦͷଞͷσʔλΛͲͷΑ͏ʹมߋ͍͔ͨ͠ Λهड़͢ΔಠࣗͷϩδοΫΛఆٛ͢Δ͜ͱ͕Ͱ ͖·͢ɻΞΫγϣϯ͕ىಈ͢ΔલޙʹΠϕϯ
τΛొͨ͠ΓɺΞΫγϣϯͷಈ࡞Λஔ͖͑ ͨΓ͢Δ͜ͱՄೳͰ͢ɻ ൃ৴࣌ͷ௨ ͦ͏͔ʂ"DUJPOT'SBNFXPSLΛ͏ͱΠϕϯτΛ)PPLͰ͖ΔΜͩ
ͲΜͳ"DUJPO͕͋Δͷʁ υΩϡϝϯτ͕༏͘͠ڭ͑ͯ͘ΕΔ IUUQTBTTFUT fl FYUXJMJPDPNEPDTSFMFBTFT fl FYVJ"DUJPOTIUNM ͜ͷϖʔδʹɺ"DUJPO'SBNFXPSLͷ .FNCFS͕هࡌ͞Ε͍ͯΔɻ͜ΕΛΠ ϕϯτͱͯ͠ϑοΫ͢Δʹɺ
fl FY"DUJPOTBEE-JTUFOFS lCFGPSF"DDFQU5BTLz QBZMPBE \ ॲཧΛهࡌ^ .FNCFSͷ಄ʹBGUFSͱ͔CFGPSFΛͭ ͚ͯϦεφʔΛొ͢ΔͷͶɾɾ ൃ৴࣌ͷ௨
ͳΜͯΘ͔Γʹ͍͘Μͩʂ ൃ৴࣌ͷ௨
'MFY&WFOUͬͯͷ͋Δ ͬͪ͜ͷ΄͏͕ײతͩΑͶ ൃ৴࣌ͷ௨ w 'MFY&WFOUɺ'MFY.BOBHFSΛͬ ͯΠϕϯτΛ)PPL͢Δ͜ͱ͕Ͱ͖Δ ΈΒ͍͠ w ͔͠͠ɺ5BTLʹؔ͢ΔΠϕϯτఆ ٛ͞Ε͍ͯͳ͍
w ݁ہ"DUJPOT'SBNFXPSLΛ͏͠ ͔ͳ͍
'MFY6*7FS͍͍̎ͧʔ 'MFY&WFOUT͕֦ு͞Εͯɺ5BTLपΓͷΠϕϯτऔΕΔʂ IUUQTBTTFUT fl FYUXJMJPDPNEPDTSFMFBTFT fl FYVJCFUB ൃ৴࣌ͷ௨
ؾΛऔΓͯ͠ɺ"DDFQU5BTL ͦͦΠϕϯτϦεφʔͲ͜ʹॻ͘ʁ ൃ৴࣌ͷ௨ ϓϥάΠϯͷҰ൪࠷ॳʹ࣮ߦ͞ΕΔ JOJUϝιουͰఆٛͪ͠Ό͓͏
QBZMPBEͷதʁ υΩϡϝϯτʹ͜͏ॻ͔Ε͍ͯΔ w DPOGFSFODF0QUJPOTɺલड़ͷ௨Γ%VBMͰͷ ௨ʹ͔ͭ͑ͳͦ͞͏ɻ w ٯʹUBTL͕औಘͰ͖Εɺண৴࣌ͷॲཧͱಉ༷ ʹɺԻ༻ͷ"UUSJCVUFTՃͰ͖Δ͠ɺ৭ʑ ͱͰ͖ͦ͏ɻ w
ͦͦUBTLʹԿ͕ೖ͍ͬͯΔͷ͔ௐΔඞ ཁ͕͋Δɻ ൃ৴࣌ͷ௨
QBZMPBEUBTLDPOGFSFODFΛऔಘ DPOGFSFODF͕Ͱ͖ΔλΠϛϯάগ͍͠ͷͰҙ ൃ৴͔Ͳ͏͔ɺBUUSJCVUFTEJSFDUJPOΛఆ DPOGFSFODF͕Ͱ͖Δ·ͰΣΠςΟϯά ൃ৴࣌ͷ௨
DPOGFSFODFͷϝϯόʔΛऔಘ ૬ख͕Ԡ͔ͯ͠Βϝϯόʔ͕֬ఆ͢ΔͷͰɺ͜͜ͰΠϕϯτϑοΫ JUFN"EEFEΠϕϯτΛϑοΫ JUFNEFTDSJQUPSLFZ͕DBMM4JE 'VODUJPOTΛݺͼग़ͯ͠௨։࢝ ൃ৴࣌ͷ௨ !TTU@C͞Μͷ2JJUBͷهࣄΛࢀߟʹ͠·ͨ͠ʂ IUUQTRJJUBDPNTTU@CJUFNTFFGBCE
ͳͥ'VODUJPOTʁ 'MFY6*͔Β3FDPSEJOH"1*Λݺͳ͍ཧ༝ • Flex Plugins のコードはブラウザ上で実⾏される • Flex Plugins で
Twilio API を呼ぼうとすると、認証情報をソースに書かなく てはならない • ソースを解析されると、API Keyなどが漏洩してしまう(これはマズい) • 認証情報を含む API アクセスは Functions に任せて、Plugins からは Functions を呼ぶようにする IUUQTXXXUXJMJPDPNEPDT fl FYEFWFMPQFSQMVHJOTDBMMGVODUJPOT ൃ৴࣌ͷ௨
'MFY*OTJHIUTͰ֬ೝ͍ͨ͠ ண৴࣌ͱಉ༷ʹɺUBTLBUUSJCVUFTʹΛઃఆ͢Δ ͜ͷลՃ͠ͳ͍ͱग़ͯ͘Εͳ͍ ൃ৴࣌ͷ௨
Ͱ͖ͨʂ ൃ৴࣌ͷ௨ Ͱ4BMFTGPSDF*OUFHSBUJPOͰಈ͔ͳ͍ɾɾɾ
$MJDLUP%JBMΛΞοϓάϨʔυ 'MFYͷ*OUFHSBUJPOϖʔδʹϚΠάϨʔγϣϯϘλϯ͕͋Δ ͜ΕͰ4BMFTGPSDF*OUFHSBUJPOͰ ൃ৴௨͕Ͱ͖ΔΑ͏ʹͳΓ·ͨ͠ʂ ൃ৴࣌ͷ௨
(JU)VCʹ͋͛ͯ͋Γ·͢ IUUQTHJUIVCDPNNPCJMFCJ[QMVHJOPVUCPVOESFDPSEJOH ൃ৴࣌ͷ௨
%&.0 4BMFTGPSDF 5XJMJP'MFY ൃ৴࣌ͷ௨
I can’t wait to see what you build a flex
plugin! 5IBOLZPV