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
Twilioハンズオン!電話の自動音声応答を作ってみよう
Search
friendtree16
September 02, 2021
Programming
0
120
Twilioハンズオン!電話の自動音声応答を作ってみよう
以下イベントのハンズオンで利用した資料です。
https://kaishi-fc.connpass.com/event/220524/
friendtree16
September 02, 2021
Tweet
Share
More Decks by friendtree16
See All by friendtree16
Watsonを使ってVoiceControllerを作る
friendtree16
0
66
bluemixユーザー会発表資料
friendtree16
1
1.4k
Other Decks in Programming
See All in Programming
OpenAPI を守るのは難しい
ohmori_yusuke
1
140
デザインシステムで Tailwind CSSとCSS in JSに分散投資をしたら良かった話
fsubal
14
3.2k
LPIXEL×CADDi_kaerururu
kaerururu
3
300
オブジェクト指向は必要なのか / Is object-oriented needed?
kishida
27
19k
ONE WEDGE_Company_Information
1wedge
0
170
チームでモデリングを育てるうえで 考えたこと・気づいたこと / Cultivating Modeling in Teams: Thoughts and Insights
mackey0225
5
2.3k
phpunit/php-code-coverageって何をしてるんだ #phperkaigi
o0h
PRO
2
220
Open Source Swift Workshop - Foundation and first party libraries
ikesyo
0
180
Open Source Swiftc Workshop
kitasuke
1
180
Deep Dive 大規模システムアーキテクチャ/開発組織エンジニアリング / Deep Dive Large-Scale System Architecture, Development Organization Engineering
nrslib
15
2.9k
DDD, necessary but insufficient: physical design principles for microservices
cer
PRO
0
2.2k
LLMチャットボットのアプリケーション設計Tips
os1ma
4
660
Featured
See All Featured
Happy Clients
brianwarren
91
6.3k
Producing Creativity
orderedlist
PRO
335
39k
How STYLIGHT went responsive
nonsquared
92
4.7k
Principles of Awesome APIs and How to Build Them.
keavy
119
16k
Why You Should Never Use an ORM
jnunemaker
PRO
50
8.6k
What's new in Ruby 2.0
geeforr
335
31k
Raft: Consensus for Rubyists
vanstee
130
6.2k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
185
15k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
67
38k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
Into the Great Unknown - MozCon
thekraken
10
830
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
19
1.9k
Transcript
5XJMJPϋϯζΦϯʂ ిͷࣗಈԠΛ࡞ͬͯΈΑ͏
ࣗݾհ ໊લɿᷤɹஐلʢ͔ͭɹͱ͖ʣ ॴଐɿKDDIΣϒίϛϡχέʔγϣϯζ ɹɹɹTwilioຊ෦ɹϚʔέςΟϯάνʔϜ ܦྺɿ 2014ΑΓiOSɺAndroidͷωΠςΟϒΞϓϦέʔγϣϯ։ൃɺAngularLaravelΛ༻͍ͨΣϒΞϓϦέʔ γϣϯ։ൃʹैࣄɻ20205݄ΑΓTwilioࣄۀ෦ʹδϣΠϯ͠ɺTwilioͷ࠷৽ใͷൃ৴TwilioΛ༻͍ͨ Ҭ՝ղܾΛ୲ɻ 2021ʙɿTwilio Champion
ஶॻɿʢ2021/3ʣʰ͡ΊͯͷTwilioʱֶࣾ
ΞδΣϯμ 1. Twilioʹ͍ͭͯ 2. TwilioΞΧϯτͷ࡞ 3. ి൪߸ͷߪೖ 4. ిͷࣗಈԻԠͷ࡞ʢൃ৴ɾண৴ʣ 5.
SMSૹ৴ 6. Twilio Questͷհ
Twilio ʹ͍ͭͯ
Twilioͱ
Twilio͕ఏڙ͍ͯ͠ΔϓϩμΫτҰཡ
Twilioͷར༻ྫ
Twilioͷར༻ྫ
Twilioͷར༻ྫ
Twilioͷར༻ྫ
KDDIΣϒίϛϡχέʔγϣϯζͱTwilio
TwilioΞΧϯτͷ࡞
TwilioΞΧϯτͷ࡞
TwilioΞΧϯτͷ࡞
ి൪߸ͷߪೖ
ి൪߸ʹ͍ͭͯ • TwilioͰఏڙ͍ͯ͠Δి൪߸ͷࠃ • 100ΧࠃҎ্ • ຊͷ൪߸Ͱఏڙ͍ͯ͠Δి൪߸ͷछྨ • 050൪߸ʢిͷडൃ৴ͷΈɾSMSૹ৴ෆՄʣ •
0120/0800൪߸ʢண՝ۚํࣜʣ • ຊ൪߸ߪೖʹ͋ͨͬͯཹҙࣄ߲ • ຊਓ֬ೝ͕ඞཁ • https://cloudapi.kddi-web.com/magazine/twilio-lesson/how-to-buy-a-telephone-number • 0120൪߸Λߪೖ͢Δʹɺฐࣾ·Ͱ͓͍߹Θ͍ͤͩ͘͞ɻ
ి൪߸ͷߪೖ
ిͷࣗಈԻԠͷ࡞ʢൃ৴ʣ
TwilioͰࣗಈԻԠΛ࡞Δ࣌ͷߏ IBM Cloud
IBM CloudίϚϯυͷ४උ curl -fsSL https://clis.cloud.ibm.com/install/osx | sh iex(New-Object Net.WebClient).DownloadString('https://clis.cloud.ibm.com/ install/powershell')
ࢀরϖʔδ https://cloud.ibm.com/docs/cli?topic=cli-install-ibmcloud-cli&locale=ja Mac Windows PowerShell Login Ibmcloud login
IBM Cloud FunctionsΛ༗ޮԽ͢Δ 1.IBM CloudͷΞΧϯτʹϩάΠϯ 2.Cloud FunctionsμογϡϘʔυΛදࣔ 3.໊લۭؒΛબ
ιʔείʔυͷ४උ https://github.com/friendtree16/TwiMLServer-IBMCloud-Functions
ιʔείʔυͷ४උ Index.js
ιʔείʔυͷ४උ ύοέʔδΠϯετʔϧ WebpackόϯυϧΛϏϧυ IBM Cloud FunctionsʹσϓϩΠ npm install npm run
build npm run deploy
IBM Cloud FunctionsΛ४උ
IBM Cloud FunctionsΛ४උ
IBM Cloud FunctionsΛ४උ
IBM Cloud FunctionsΛ४උ ύεɿ’/twiml’ͱೖྗ͠·͢ verbɿPOSTΛબ͠·͢ ΞΫγϣϯΛؚΉύοέʔδɿσϑΥϧτΛબ͠·͢ ΞΫγϣϯɿhello-twilioΛબΛબ͠·͢ ԠίϯςϯπɾλΠϓɿΞΫγϣϯ͔Β”Context-Type” ϔομʔΛ༻͠·͢Λબ͠·͢
IBM Cloud FunctionsΛ४උ
IBM Cloud FunctionsΛ४උ URLܦ࿏ͷޙΖʹ/twimlΛ͚ͭͨͷʹͳΓ·͢ɻ ྫɿhttps://xxxxxxxx.us-south.apigw.appdomain.cloud/api/twiml
ిΛൃ৴ʢAPIʣ curl -X POST https://api.twilio.com/2010-04-01/Accounts/$TWILIO_ACCOUNT_SID/Calls.json \ --data-urlencode "Url=https://xxxxxxxx.us-south.apigw.appdomain.cloud/api/twiml" \ --data-urlencode
"To=+819012345678" \ (ൃ৴͢Δઌͷి൪߸) --data-urlencode "From=+15017122661" \ (ൃ৴͢Δݩͷి൪߸) -u $TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN
ిΛൃ৴ʢAPI Explorerʣ ൃ৴ઌి൪߸ ൃ৴ݩి൪߸ TwiMLͷURL
ిͷࣗಈԻԠͷ࡞ʢண৴ʣ
ి൪߸ʹURLΛઃఆ ͜͜ʹURLΛઃఆ͢Δ
TwiML Appͷ࡞
TwiML Appͷ࡞ ҙͷ໊લ URL
ண৴ςετ
ϏδϡΞϧϓϩάϥϛϯάͰϑϩʔΛ࡞
Twilio Studio • ίϛϡχέʔγϣϯϫʔΫϑϩʔͷ࡞͔ΒཧΛɺશͯϒϥβ্Ͱߦ͏͜ͱ͕Ͱ͖·͢ ༻్ʹԠͨ͡ίϛϡχέʔγϣϯϫʔΫϑϩʔΛ࡞͠ɺͦΕΒΛҰݩཧ͢Δ͜ͱ͕Ͱ͖·͢ɻϒϥβ ্Ͱ࡞͢ΔίϛϡχέʔγϣϯϫʔΫϑϩʔͷ࣮ߦճʹର͢Δ੍ݶ͋Γ·ͤΜɻ • దͳίϛϡχέʔγϣϯνϟωϧͰͷ௨৴ Twilioɺ༷ʑͳίϛϡχέʔγϣϯνϟωϧΛ༻ҙ͓ͯ͠Γ·͢ɻ ిɺSMSɺFacebook
MessengerLINE ͳͲɺ͓͖ͳίϛϡχέʔγϣϯνϟωϧͱ࿈ܞ͠ɺίϛϡχέʔγϣϯϫʔΫϑϩʔΛߏங͢Δ͜ͱ͕ ՄೳͰ͢ɻ • γʔϜϨεͳσʔλ࿈ܞ ࣗࣾͰطʹ༻͍ͯ͠ΔαʔυύʔςΟγεςϜγεςϜج൫ͱ࿈ܞͰ͖·͢ɻ͜ΕʹΑΓɺγʔϜϨ εͳσʔλͷ࿈ܞ͕ՄೳʹͳΓ·͢ɻ
Twilio StudioͰϑϩʔΛ࡞
Twilio StudioͰϑϩʔΛ࡞ ͢͜ͱ ݴޠͷछྨ Իͷछྨ
ి൪߸ʹϑϩʔΛઃఆ Studio FlowΛબ ࡞ͬͨFlowΛઃఆ
TwiML AppʹURLΛઃఆ ίϐʔ ϖʔετ
ண৴ςετ
SMSͷૹ৴
Programmable SMSͷಛ • SMSΛૹ৴͢ΔࡍΞϝϦΧͷ൪߸Λར༻ • ΦϓγϣϯͰࠃऩϧʔτఏڙ • ૹ৴ݩͱͯ͠ɺΞϧϑΝϕοτΛઃఆ͢Δ͜ͱՄೳ • SMSΛड৴͢Δ͜ͱͰ͖Δ͕ɺૹ৴ऀଆ͕ࠃࡍSMSʹͳͬͯ͠·͏ͨΊɺҙ
SMSૹ৴ curl -X POST https://api.twilio.com/2010-04-01/Accounts/$TWILIO_ACCOUNT_SID/Messages.json \ --data-urlencode “Body=͜͜ͰຊจΛࢦఆ͠·͢ɻ" \ --data-urlencode
"From=+15017122661" \ (ૹ৴ݩి൪߸) --data-urlencode “To=+819012345678" \ʢૹ৴ઌి൪߸ʣ -u $TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN
Twilio Questͷհ
Twilio Questͷհ https://www.twilio.com/quest/ja
͝ࢹௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ