Twilio를 통해 SMS 및 음성 서비스 사용

Twilio는 미래 지향적인 비즈니스 커뮤니케이션을 구현하므로, 개발자는 이를 통해 음성, VoIP, 메시징을 애플리케이션에 삽입할 수 있습니다. Twilio는 클라우드 기반 전역 환경에 필요한 모든 인프라를 가상화하고 Twilio 커뮤니케이션 API 플랫폼을 통해 노출됩니다. 애플리케이션을 간단히 빌드하고 확장할 수 있습니다. 종량제 가격의 유연성과 클라우드의 안정성이 주는 혜택을 누리세요.

Twilio Voice를 사용하면 애플리케이션에서 전화를 걸고 받을 수 있습니다. Twilio SMS를 사용하면 애플리케이션에서 SMS 메시지를 보내고 받을 수 있습니다. Twilio Client를 사용하면 원하는 휴대전화, 태블릿 또는 브라우저에서 VoIP 전화를 걸 수 있고 WebRTC가 지원됩니다.

가격

Google App Engine 고객에게는 업그레이드 시 SMS 메시지나 수신 통화에 사용할 수 있는 무료 크레딧이 제공됩니다.

Twilio는 종량제 서비스입니다. 설정 수수료가 없고 언제든지 계정을 해지할 수 있습니다. 자세한 내용은 Twilio 가격을 참조하세요.

플랫폼

Twilio 플랫폼은 Twilio Markup Language(TwiML), RESTful API와 웹브라우저, Android, iOS용 VoIP SDK로 구성됩니다. 도우미 라이브러리는 여러 언어로 지원됩니다. Twilio 도우미 라이브러리에서 전체 목록을 확인할 수 있습니다.

TwiML

TwiML은 수신 전화 또는 SMS를 받을 때 수행할 작업을 Twilio에 알려주는 데 사용할 수 있는 일련의 안내입니다. 누군가 Twilio 번호 중 하나에 전화를 걸거나 SMS를 보내면 Twilio는 해당 전화번호와 관련된 URL을 찾아 해당 URL에 요청합니다. Twilio는 해당 URL의 TwiML 안내를 읽고 수행할 작업을 결정합니다.

  • <Say> - TTS(텍스트 음성 변환)
  • <Record> - 통화 녹음
  • <Play> - 발신자를 위한 메시지 재생
  • <Gather> - 발신자에게 키패드의 숫자를 누르도록 요청
  • <Message> - 메시지 보내기

Twilio 마크업 언어 문서에서 다른 동사와 기능에 대해 알아보세요.

REST API

Twilio REST API를 사용하면 계정, 전화번호, 통화, SMS, 녹음에 대한 메타데이터를 쿼리할 수 있습니다. 또한 발신 통화 시작과 SMS 보내기와 같은 기능을 수행할 수 있습니다.

이 API는 REST 원칙을 기반으로 하므로, 매우 간편하게 애플리케이션을 작성하고 테스트할 수 있습니다. 브라우저를 사용하여 URL에 액세스할 수 있고 모든 프로그래밍 언어로 거의 모든 HTTP 클라이언트를 사용하여 API와 상호작용할 수 있습니다. 자세한 내용은 Twilio REST API를 참조하세요.

샘플 코드 복사

Twilio와의 통합을 보여 주는 전체 코드 샘플을 GitHub에서 사용할 수 있습니다. 이 샘플 코드를 사용하려면 코드를 로컬 머신에 복사합니다.

git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples
cd nodejs-docs-samples/appengine/twilio

설정

Twilio를 사용하여 수신 전화를 받거나, SMS를 보내거나, SMS를 수신하려면 다음 단계를 따르세요.

  1. 프로젝트를 만듭니다. 자세한 내용은 App Engine의 Node.js용'Hello, World!'를 참조하세요.

  2. Twilio 계정을 만듭니다.

  3. Twilio에서 번호를 만듭니다. 앱에 필요한 Twilio 번호의 URL을 구성합니다. 예를 들어, 샘플 코드에서 다음을 수행합니다.

    • 음성 요청 URL을 https://[your-app-id].appspot.com/call/receive로 구성합니다.
    • SMS 요청 URL을 https://[your-app-id].appspot.com/sms/receive로 구성합니다.
  4. app.flexible.yaml의 환경 변수 섹션에서 Twilio 설정을 구성합니다. 예를 들면 다음과 같습니다.

    # The following env variables may contain sensitive information that grants
    # anyone access to your Twilio account. Do not add this file to your source
    # control.
    env_variables:
      TWILIO_ACCOUNT_SID: <your-account-sid>
      TWILIO_AUTH_TOKEN: <your-auth-token>
      TWILIO_NUMBER: <your-twilio-number>

  5. 라이브러리의 종속 항목에 대한 Twilio를 애플리케이션의 package.json에 추가합니다. 예를 들면 다음과 같습니다.

    npm install --save twilio
    

    App Engine은 애플리케이션 배포 시에 package.json에서 선언된 모든 종속 항목이 설치되도록 합니다.

  6. 앱의 로컬 테스트를 준비하려면 명령줄을 사용하여 로컬 머신에서 환경 변수를 설정합니다. 예를 들어, 샘플 코드에서 다음을 사용할 수 있습니다.

    export TWILIO_ACCOUNT_SID=[your-twilio-account-sid]
    export TWILIO_AUTH_TOKEN=[your-twilio-auth-token]
    export TWILIO_NUMBER=[your-twilio-number]
    
  7. 애플리케이션을 로컬에서 실행하여 콜백 및 SMS 보내기를 테스트할 수 있습니다. 예를 들면 다음과 같습니다.

    npm start
    

수신 전화 받기

설정을 완료한 후 첫 번째 애플리케이션을 만듭니다.

app.js/call/receive 핸들러는 수신 전화에 응답하고 TwiML 명령을 반환하는 방법을 보여 줍니다.

app.post('/call/receive', (req, res) => {
  const resp = new TwimlResponse();
  resp.say('Hello from Google App Engine.');

  res.status(200)
    .contentType('text/xml')
    .send(resp.toString());
});
  1. App Engine에 프로젝트를 배포합니다. 프로젝트를 배포한 후 http://your-app-id.appspot.com/call/receive로 POST 요청을 보내면 다음 텍스트가 반환될 수 있습니다.

    <?xml version="1.0" encoding="UTF-8"?>
      <Response>
        <Say>Hello from Twilio!</Say>
      </Response>
    
  2. http://your-app-id.appspot.com/call/receive URL을 복사하여 Twilio 계정의 번호 페이지에 있는 음성 URL 상자에 붙여넣습니다.

  3. 이제 Twilio 번호로 전화를 겁니다. 'Hello from Twilio!'라는 음성이 들려야 합니다. 전화를 걸면 Twilio가 URL을 가져오고 위에 나열된 XML 안내를 실행합니다. 그런 다음 더 이상 안내가 없으므로, Twilio가 전화를 끊습니다.

SMS 보내기

twilio-node 도우미 라이브러리를 사용하여 Twilio를 사용하여 발신 SMS를 보낼 수 있습니다.

app.js/sms/send 핸들러는 SMS를 보내는 방법을 보여 줍니다.

app.get('/sms/send', (req, res, next) => {
  const to = req.query.to;
  if (!to) {
    res.status(400).send('Please provide an number in the "to" query string parameter.');
    return;
  }

  twilio.sendMessage({
    to: to,
    from: TWILIO_NUMBER,
    body: 'Hello from Google App Engine'
  }, (err) => {
    if (err) {
      next(err);
      return;
    }
    res.status(200).send('Message sent.');
  });
});
  1. to 매개변수를 변경하여 실제 전화번호를 사용합니다. to 번호에 휴대전화 번호를 포함하여 모든 발신 번호를 사용할 수 있습니다.

  2. 업데이트된 코드를 배포한 후 URL http://your-app-id.appspot.com/sms/send를 웹 브라우저에 입력하여 SMS를 보냅니다.

SMS 수신

twilio-node 도우미 라이브러리를 사용하여 Twilio를 통해 수신 SMS를 받을 수 있습니다.

app.js/sms/receive 핸들러는 수신 SMS에 응답하는 방법과 TwiML 안내를 반환하는 방법을 보여 줍니다.

app.post('/sms/receive', bodyParser, (req, res) => {
  const sender = req.body.From;
  const body = req.body.Body;

  const resp = new TwimlResponse();
  resp.message(format('Hello, %s, you said: %s', sender, body));

  res.status(200)
    .contentType('text/xml')
    .send(resp.toString());
});

App Engine에 업데이트된 코드를 배포한 후 Twilio 번호로 SMS를 보냅니다. 그러면 인사말 응답을 받게 됩니다.

Twilio에 대해 자세히 알아보기

몇 가지 기본 기능을 사용해 보았습니다. 이제 안전하고 확장 가능한 애플리케이션을 빌드하기 위해 더 많은 기능과 권장사항에 대해 알아보세요.

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Node.js 문서용 App Engine 가변형 환경