Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
電話番号を扱う技術
Shota Iguchi
October 21, 2017
Technology
21
10k
電話番号を扱う技術
Shota Iguchi
October 21, 2017
Tweet
Share
More Decks by Shota Iguchi
See All by Shota Iguchi
Webpacker移行ガイド / Migrating from Webpacker to Simpacker
iguchi1124
1
330
cookpadLiveのライブ配信基盤
iguchi1124
0
800
師弟登壇 2018 クックパッドで弟子入りした話
iguchi1124
1
2.7k
RackでWEBアプリケーション開発入門
iguchi1124
0
270
Other Decks in Technology
See All in Technology
propsのバケツリレー対策でGlobal_Stateを使うその前に
taro28
8
1.7k
ECテックカンファレンス2023 EC事業部のモバイル開発2023
tatsumi0000
0
130
チケットNFTの仕組み
sbtechnight
0
330
Optimizing your Swift code
kateinoigakukun
0
1.3k
スタメンのLeSSの導入と 事業部全体を巻き込んだ アウトカム文化への道のり
uuushiro
2
3k
大企業がアジャイルになる途中で 起きること/What happens on the way big company becomes agile
chinmo
0
2.7k
Google Cloud Updates 2022/12/01-12/15
no24oka
1
150
RDS/Aurora バージョンアップのポイント
hmatsu47
PRO
8
1.6k
オンプレk8sとEKSの並行運用の実際
ch1aki
0
100
Airdrop for Open Source Projects
epicsdao
0
230
LINEにおけるネットワーク自動化チーム / Network Automation Team in LINE
line_developers
PRO
0
220
WINTICKET QA における Autify 活用
kj455
1
180
Featured
See All Featured
Thoughts on Productivity
jonyablonski
49
2.7k
What's new in Ruby 2.0
geeforr
336
30k
Clear Off the Table
cherdarchuk
79
290k
How to train your dragon (web standard)
notwaldorf
66
4.2k
How GitHub (no longer) Works
holman
298
140k
Scaling GitHub
holman
453
140k
Product Roadmaps are Hard
iamctodd
38
7.7k
Design by the Numbers
sachag
271
18k
Docker and Python
trallard
30
1.9k
How New CSS Is Changing Everything About Graphic Design on the Web
jensimmons
214
12k
The Brand Is Dead. Long Live the Brand.
mthomps
48
2.9k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
32
6.7k
Transcript
ి൪߸Λѻ͏ٕज़ @iguchi1124
͢͜ͱ ి൪߸ΛWebαʔϏεͰར༻͢ΔͨΊʹߟྀ͢Δ͜ͱ ి൪߸ύʔαʔͷհ
MFA (Multi Factor Authentication) ࿈བྷઌͷొ ϢʔβʔID ి൪߸ΛͬͨΑ͋͘Δػೳ
໌Β͔ʹ͓͔͍͠ͷόϦσʔγϣϯ ࣮ࡍʹଘࡏ͠ಘΔి൪߸͔Ͳ͏͔ w w w w w SMS͕ૹ৴Մೳ͔Ͳ͏͔ ຊࠃ֎ͷܞଳిΛ͍ͬͯΔਓ͍Δ ి൪߸ΛαʔϏεͰར༻͍ͨ͠
ࠃࡍن֨ E164 ITU-T ͕ඪ४Խ͍ͯ͠Δి൪߸ׂܭը ి൪߸͕িಥ͠ͳ͍Α͏ʹ͢ΔΈ ి൪߸Ͳ͏ׂͬͯΒΕΔ͔
ి൪߸Ͳ͏ׂͬͯΒΕΔ͔ https://www.itu.int/rec/T-REC-E.164/
ࣾձੑ༷ ࠃҬͰి൪߸͕িಥ͠ͳ͍Α͏ʹࠃ൪߸Λ࠾൪ ࠃҬ͝ͱͰిΛ͔͚ΔͨΊͷΈ ి൪߸Ͳ͏ׂͬͯΒΕΔ͔
Ϣʔβʔ͕ೝ͍ࣝͯ͠Δి൪߸ͱ ਖ਼نԽ͞Εͨి൪߸શ͘ผ ϢʔβʔʹΑͬͯೖྗ͢Δ ి൪߸ͷϑΥʔϚοτ͕ҧ͏ +
ਖ਼نԽ͞Εͨࠃࡍి൪߸ +81 80 XXXX XXXX Country code National number ࠃίʔυΛڞ༗͍ͯ͠ΔࠃͰҰҙʹͳΔ
Ϣʔβʔ͕ೝ͍ࣝͯ͠Δి൪߸ 080 XXXX XXXX ࠃͰిSMSΛૹ৴͢Δͱ͖಄ʹ͚ͭΔ ࠃʹΑ༷͕ͬͯҟͳΔ National prefix
֤ࠃͰ࠾༻͍ͯ͠ΔࠃϓϨϑΟΫεͱࠃίʔυ ͦͷଞͷಠࣗͰ࠾༻͍ͯ͠Δ༷ SMS͕ૹ৴Ͱ͖Δి൪߸͔Ͳ͏͔ ϢʔβʔͷίϯςΩετ͕Θ͔Δ ݡ͍ύʔαʔ͕ඞཁ ి൪߸ΛόϦσʔγϣϯ͢Δ
ͦ͜Ͱ libphonenumber github.com/googlei18n/libphonenumber
libphonenumberͷίί͕ੌ͍ Google͕ϝϯςφϯε͍ͯ͠Δి൪߸ύʔαʔ ֤ࠃͷి൪߸ͷಠ༷ࣗΛௐਚͨ͘͠࠷ڧͷϝλσʔλ Λ༻ҙ͍ͯ͠Δ ͋ΒΏΔݴޠͰѻ͑ΔΑ͏ʹͳ͍ͬͯΔ Javascript, Ruby, PHP, PostgreSQL, Go,
C++Ͱར༻Ͱ͖Δ
libphonenumberͷίί͕ੌ͍ TelephoneNumber.valid?('8180XXXXXXXX') # => true TelephoneNumber.valid?('+81 80 XXXX XXXX') #
=> true TelephoneNumber.valid?('080 XXXX XXXX', 'JP') # => true require 'telephone_number' telephone_number = TelephoneNumber.parse('8180XXXXXXXX') telephone_number.e164_number # => +8180XXXXXXXX telephone_number.national_number # => 080-XXXX-XXXX telephone_number.country.country_id # => JP telephone_number.valid_types # => [:mobile] github.com/mobi/telephone_number github.com/iguchi1124/global_phone_number ruby port library (WIP)
✅ ֤ࠃͰ࠾༻͍ͯ͠ΔࠃϓϨϑΟΫεͱࠃίʔυ ✅ ͦͷଞͷಠࣗͰ࠾༻͍ͯ͠Δ༷ ✅ SMS͕ૹ৴Ͱ͖Δి൪߸͔Ͳ͏͔ ి൪߸ΛόϦσʔγϣϯ͢Δ ࣮༻ஈ֊
͓ΘΓ