👨🏽‍💻

ch3 - 5. SMS발송하기


1. Twilio란?

Web 또는 App에서 SMS 텍스트메세지, 전화걸기, 영상통화 등을 할 수 있게 도와주는 API입니다.
사용자의 전화번호를 사용하는 것이 아니라, 사용자들에게 Twilio 자체 전화번호를 제공함으로써 개인의 익명성이나 스팸에 노출 될 위험을 줄일 수 있습니다.
Python, PHP, Ruby를 이용해서 구현할 수 있습니다.

2. TwiML

TwiML은 Twilio에 SMS 처리 방법을 알려 주는 XML을 기반으로 한 명령 집합입니다.
 
notion imagenotion image
 
위와 같은 명령 집합이 있으며 여기서는 SMS에 대해서 중점적으로 알아보도록 하겠습니다.
 
지금까지 Twilio와 TwiML에 대해서 알아보았습니다. 다음으로 Twilio 라이브러리를 사용하도록 애플리케이션을 구성하는 법을 알려드리도록 하겠습니다.
 

3. 기본 설정하기

3-1) Twilio 계정 만들기

 
notion imagenotion image
 
회원가입을 완료하면 아래와 같이 twilio에서 제공하는 전화번호ACCOUNT SID, AUTH TOKEN 값을 각각 확인할 수 있습니다.
notion imagenotion image
 
notion imagenotion image

3-2) 라이브러리 설치하기

먼저 Twilio 라이브러리를 pip 패키지로 설치합니다.
$ pip install twilio
 
설치를 한 후에는 다음과 같이 라이브러리를 import 할 수 있습니다.
from twilio.rest import Client
 

4. SMS 보내기

 
지금부터는 실제로 SMS 보내는 과정을 보여드리겠습니다.
account_sid = 'twilio에서 받은 ACCOUNT_SID값을 입력합니다' auth_token = 'twilio에서 받은 AUTH TOKEN값을 입력합니다'
 
python에서 아래와 같이 코드를 작성하면 메세지를 보낼 수 있습니다.
from twilio.rest import Client account_sid = 'twilio에서 받은 ACCOUNT_SID값을 입력합니다' auth_token = 'twilio에서 받은 AUTH TOKEN값을 입력합니다' client = Client(account_sid, auth_token) message = client.messages.create( from_='+12132386573', //twilio에서 인증받은 번호를 입력하면 됩니다. body='업무자동화 With GDG Jeju', //보내고 싶은 메세지 내용을 입력하시면 됩니다. to='+821052385112' //메세지를 수신할 번호를 입력하면 됩니다. ) print(message.sid)
 
실행하기 전에 https://www.twilio.com/console/sms/settings/geo-permissions 사이트에 접속하셔서 보내고자 하는 나라에 체크가 되어있는지 확인하셔야합니다.
notion imagenotion image
위 사진을 보시면 Korea Republic of (+82)에 체크가 되어있습니다.
 
모든 준비가 완료되었다면 이제 실행하시면 됩니다.
notion imagenotion image
왼쪽화면은 python에서 위에서 작성한 코드를 적은 것이고 오른쪽 화면은 왼쪽화면을 실행했을 때 성공했다고 뜨는 화면입니다.
 
 
notion imagenotion image
 
실제로 메세지가 전송된 화면입니다.
twilio는 기본 값으로 미국전화번호를 주기때문에 국외발신으로 뜨는 상황입니다.
한국전화번호를 쓰고 싶으면 추가로 달러를 지불해야하기 때문에 어떤 상황에 쓰는지에 따라서 유동적으로 이용하시면 좋을 것 같습니다.
하지만 현재 한국 전화번호는 SMS 중 음성메세지, 팩스만 가능하기때문에 텍스트 메세지는 미국전화번호를 이용해야합니다.
하지만 후에 한국전화번호를 이용해서 텍스트 메세지 전송도 가능해질 수 있기때문에 미리 알아두면 유용하다고 생각합니다.
 

5. 참고사이트