Twilio로 메시지 보내기
Made by Twilio
지정된 Cloud Firestore 컬렉션에 작성된 문서의 콘텐츠를 기반으로 Twilio API를 사용하여 메시지를 보냅니다.
이 확장 프로그램의 작동 방식
이 확장 프로그램을 사용하면 지정된 Cloud Firestore 컬렉션에 추가된 문서의 정보를 기반으로 Twilio Programmable Messaging API를 사용하여 메시지(SMS 또는 WhatsApp)를 보낼 수 있습니다. 이 확장 프로그램은 또한 각 메시지의 전송 상태를 기록합니다.
문서를 추가하면 확장 프로그램이 트리거되어 문서의 필드에서 작성된 메시지를 전송합니다. 문서의 필드는 메시지를 보낼 사람과 메시지 본문을 지정하며 필요에 따라 메시지를 보낼 번호를 정의할 수도 있습니다.
다음은 이 확장 프로그램을 트리거하는 예시 문서입니다.
admin.firestore().collection('messages').add({ to: '+15551234567', body: 'Hello from Firebase!' });
필수 필드
필드 | 설명 |
---|---|
to |
메시지를 보낼 전화번호 또는 WhatsApp 번호입니다. 전화번호는 e.164 형식이어야 합니다. |
body |
메시지 본문 |
선택적 필드
필드 | 설명 |
---|---|
from |
메시지를 보내는 데 사용할 Twilio 전화번호 또는 메시지 서비스입니다. 확장 프로그램 설정에 지정된 발신자 번호 또는 메시지 서비스를 재정의합니다. |
추가 설정
이 확장 프로그램을 설치하기 전에 먼저 다음을 수행했는지 확인합니다.
- Firebase 프로젝트에 Cloud Firestore 데이터베이스를 설정했습니다.
- Twilio 계정에 가입했습니다.
SMS 보내기
- SMS 메시지를 보낼 수 있는 Twilio 전화번호가 필요합니다.
- 체험판 계정을 사용하는 경우 Twilio로 인증된 번호로만 메시지를 보낼 수 있습니다.
WhatsApp 메시지 보내기
- WhatsApp용 Twilio 샌드박스에 제공된 번호로 테스트할 수 있습니다.
- 프로덕션에서 WhatsApp 메시지를 보내려면 Twilio 번호를 WhatsApp 비즈니스 프로필에 연결해야 합니다.
결제
확장 프로그램을 설치하려면 프로젝트에서 사용한 만큼만 지불하는 Blaze 요금제를 이용해야 합니다.
- 이 확장 프로그램에 필요한 Firebase 리소스에 대해 사용 여부와 관계없이 일반적으로 월 $0.01 정도의 소액이 청구됩니다.
- 이 확장 프로그램은 서비스의 무료 등급을 초과하는 경우 관련 요금이 청구될 수 있는 다른 Firebase 및 Google Cloud Platform 서비스를 사용합니다.
- Cloud Firestore
- Cloud Functions (Node.js 10 이상 런타임. FAQ 보기)
- Cloud Secret Manager
또한 이 확장 프로그램을 사용하려면 메시지 전송에 Twilio API를 사용하기 위해 Twilio 계정 및 사용자 인증 정보가 있어야 합니다. Twilio 사용으로 인한 관련 비용은 사용자가 부담해야 합니다.
확장 프로그램 설치 방법
Firebase CLI 사용
Firebase CLI를 사용해 확장 프로그램을 설치하고 관리할 수도 있습니다.
1단계: 다음 npm 명령어를 실행하여 CLI를 설치하거나 최신 CLI 버전으로 업데이트합니다.
npm install -g firebase-tools작동하지 않는 경우 Firebase CLI 참조를 살펴보거나 npm 권한을 변경하세요.
2단계: 새 Firebase 프로젝트 디렉터리를 설정하거나 기존 디렉터리로 이동합니다.
3단계: 다음을 실행하여 이 확장 프로그램을 확장 프로그램 매니페스트에 추가합니다.
firebase ext:install twilio/send-message --local --project=projectId_or_alias
4단계(선택사항): Firebase 에뮬레이터 도구 모음으로 이 확장 프로그램을 로컬에서 테스트합니다.
firebase emulators:start
5단계: 매니페스트의 확장 프로그램을 프로젝트에 배포합니다.
firebase deploy --only extensions --project=projectId_or_alias