SMS Twilio avec Claude Code
Découvrez sMS Twilio avec Claude Code. Conseils pratiques et exemples de code inclus.
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);
}
Summary
Twilioの通信APIをClaude Codeで効率的に実装し、SMS通知や二要素認証を素早くアプリに組み込めます。認証実装ガイドやWebhook実装も合わせて参考にしてください。
Twilioの詳細はTwilio公式ドキュメントを参照してください。
Related Posts
Comment booster vos projets personnels avec Claude Code [Avec exemples]
Apprenez à accélérer considérablement vos projets de développement personnels avec Claude Code. Inclut des exemples concrets et un workflow pratique de l'idée au déploiement.
Comment automatiser le refactoring avec Claude Code
Apprenez à automatiser efficacement le refactoring de code avec Claude Code. Inclut des prompts pratiques et des patterns de refactoring concrets pour des projets réels.
Guide complet de configuration CORS avec Claude Code
Découvrez le guide complet de configuration CORS avec Claude Code. Conseils pratiques et exemples de code inclus.