Twilio SMS/ Implementation: Claude Code 활용 가이드
twilio sms/ implementation: Claude Code 활용. 실용적인 팁과 코드 예시를 포함합니다.
TwilioのSMS/通話機能をClaude Code로 구현하기
Twilioはプ로그ラマブルな通信APIを提供するプラット폼です。SMS전송、오디오通話、二要素인증など、通信機能を앱に組み込めます。Claude Code를 활용하면 TwilioのAPIを효율적으로활용할 수 있습니다。
SMS전송の基本
> TwilioでSMS전송するサービス클래스を作って。
> 템플릿대응とリトライ処理も含めて。
// src/services/sms.ts
import twilio from 'twilio';
const client = twilio(
process.env.TWILIO_ACCOUNT_SID!,
process.env.TWILIO_AUTH_TOKEN!
);
const FROM_NUMBER = process.env.TWILIO_PHONE_NUMBER!;
export class SmsService {
async send(to: string, body: string): Promise<string> {
try {
const message = await client.messages.create({
body,
from: FROM_NUMBER,
to,
});
console.log(`SMS sent: ${message.sid}`);
return message.sid;
} catch (error: any) {
if (error.code === 21211) {
throw new Error('無効な電話番号です');
}
throw error;
}
}
async sendWithRetry(
to: string,
body: string,
maxRetries = 3
): Promise<string> {
for (let i = 0; i < maxRetries; i++) {
try {
return await this.send(to, body);
} catch (error) {
if (i === maxRetries - 1) throw error;
await new Promise(r => setTimeout(r, 1000 * (i + 1)));
}
}
throw new Error('Max retries exceeded');
}
}
二要素인증(2FA)の구현
> Twilio Verify를 사용한二要素인증를 구현해줘。
> コードの전송と검증の両方を作って。
// src/services/verification.ts
import twilio from 'twilio';
const client = twilio(
process.env.TWILIO_ACCOUNT_SID!,
process.env.TWILIO_AUTH_TOKEN!
);
const VERIFY_SERVICE_SID = process.env.TWILIO_VERIFY_SERVICE_SID!;
export class VerificationService {
// 인증コードの전송
async sendCode(
to: string,
channel: 'sms' | 'call' | 'email' = 'sms'
): Promise<void> {
await client.verify.v2
.services(VERIFY_SERVICE_SID)
.verifications.create({
to,
channel,
});
console.log(`Verification code sent to ${to} via ${channel}`);
}
// 인증コードの검증
async verifyCode(to: string, code: string): Promise<boolean> {
try {
const check = await client.verify.v2
.services(VERIFY_SERVICE_SID)
.verificationChecks.create({
to,
code,
});
return check.status === 'approved';
} catch (error: any) {
if (error.code === 20404) {
return false; // コードが期限切れ
}
throw error;
}
}
}
API엔드포인트の구현
// src/api/auth/verify.ts
import { VerificationService } from '../../services/verification';
const verifyService = new VerificationService();
// コード전송
export async function POST(req: Request) {
const { phone } = await req.json();
if (!phone) {
return Response.json({ error: '電話番号が必要です' }, { status: 400 });
}
try {
await verifyService.sendCode(phone);
return Response.json({ success: true, message: '認証コードを送信しました' });
} catch (error) {
return Response.json({ error: '送信に失敗しました' }, { status: 500 });
}
}
// コード검증
export async function PUT(req: Request) {
const { phone, code } = await req.json();
const isValid = await verifyService.verifyCode(phone, code);
if (isValid) {
return Response.json({ success: true, message: '認証成功' });
}
return Response.json({ error: '無効なコードです' }, { status: 400 });
}
알림システムの구축
> 注文ステータス변경時にSMS알림を送る仕組みを作って。
// src/services/notification.ts
import { SmsService } from './sms';
const smsService = new SmsService();
const TEMPLATES = {
ORDER_CONFIRMED: (orderId: string) =>
`ご注文 #${orderId} を承りました。準備が整い次第、発送いたします。`,
ORDER_SHIPPED: (orderId: string, trackingUrl: string) =>
`ご注文 #${orderId} を発送しました。配送状況: ${trackingUrl}`,
ORDER_DELIVERED: (orderId: string) =>
`ご注文 #${orderId} が配達されました。ご利用ありがとうございます。`,
};
export async function notifyOrderStatus(
phone: string,
orderId: string,
status: 'confirmed' | 'shipped' | 'delivered',
metadata?: { trackingUrl?: string }
) {
let message: string;
switch (status) {
case 'confirmed':
message = TEMPLATES.ORDER_CONFIRMED(orderId);
break;
case 'shipped':
message = TEMPLATES.ORDER_SHIPPED(orderId, metadata?.trackingUrl || '');
break;
case 'delivered':
message = TEMPLATES.ORDER_DELIVERED(orderId);
break;
}
await smsService.sendWithRetry(phone, message);
}
정리
Twilioの通信APIをClaude Code로효율적으로구현し、SMS알림や二要素인증を빠르게앱に組み込めます。인증구현가이드やWebhook구현도 함께 참고하세요.
Twilio의 상세 정보는Twilio공식 문서를 참고하세요.
#Claude Code
#Twilio
#SMS
#通話
#API連携
Related Posts
Use Cases
Use Cases
Claude Code로 리팩토링을 자동화하는 방법
Claude Code를 활용해 코드 리팩토링을 효율적으로 자동화하는 방법을 알아봅니다. 실전 프롬프트와 구체적인 리팩토링 패턴을 소개합니다.
Use Cases
Use Cases
Claude Code로 사이드 프로젝트 개발 속도를 극대화하는 방법 [예제 포함]
Claude Code를 활용해 개인 프로젝트 개발 속도를 획기적으로 높이는 방법을 알아봅니다. 실전 예제와 아이디어부터 배포까지의 워크플로를 포함합니다.
Use Cases
Use Cases
Complete CORS Configuration Guide: Claude Code 활용 가이드
complete cors configuration guide: Claude Code 활용. 실용적인 팁과 코드 예시를 포함합니다.