Twilio SMS/ Implementation dengan Claude Code
Pelajari tentang twilio sms/ implementation menggunakan Claude Code. Dilengkapi tips praktis dan contoh kode.
TwilioのSMS/通話機能 dengan Claude Code: implementasi
Twilio プログラマブルな通信API penyediaan platform.SMSpengiriman、audio通話、二elemen認証 dll.、通信機能 aplikasi 組み込め.Claude Code 使えば、Twilio API efisien pemanfaatan bisa dilakukan.
dasar SMSpengiriman
> Twilio dengan SMSpengirimanするserviceclass buatkan.
> templatedukungan dan リトライpemrosesan juga 含めて。
// 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');
}
}
implementasi 二elemen認証(2FA)
> Twilio Verify 使った二elemen認証 implementasikan.
> コード pengiriman dan verifikasi 両方 buatkan.
// 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 {
// 認証コード pengiriman
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}`);
}
// 認証コード verifikasi
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;
}
}
}
implementasi APIendpoint
// src/api/auth/verify.ts
import { VerificationService } from '../../services/verification';
const verifyService = new VerificationService();
// コードpengiriman
export async function POST(req: Request) {
const { phone } = await req.json();
if (!phone) {
return Response.json({ error: '電話番号 diperlukan す' }, { status: 400 });
}
try {
await verifyService.sendCode(phone);
return Response.json({ success: true, message: '認証コード pengirimanしま' });
} catch (error) {
return Response.json({ error: 'pengiriman gagalしま' }, { status: 500 });
}
}
// コードverifikasi
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: '認証berhasil' });
}
return Response.json({ error: '無効なコード す' }, { status: 400 });
}
pembangunan notifikasisistem
> 注文ステータス変更時 SMSnotifikasi 送るmekanisme buatkan.
// 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} 配達されま。ごpemanfaatanあり とうございます。`,
};
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 efisien implementasiし、SMSnotifikasiや二elemen認証 素早くaplikasi 組み込め.認証implementasipanduanやWebhookimplementasi juga 合わせて参考 .
Untuk Twilioの詳細, lihat Twilio公式ドキュメント.
Related Posts
Cara Mempercepat Side Project dengan Claude Code [Dengan Contoh]
Pelajari cara mempercepat project development personal secara drastis menggunakan Claude Code. Dilengkapi contoh nyata dan workflow praktis dari ide hingga deployment.
Cara Mengotomatisasi Refactoring dengan Claude Code
Pelajari cara mengotomatisasi code refactoring secara efisien menggunakan Claude Code. Dilengkapi prompt praktis dan pola refactoring konkret untuk project nyata.
Panduan Lengkap Konfigurasi CORS dengan Claude Code
Pelajari tentang panduan lengkap konfigurasi CORS menggunakan Claude Code. Dilengkapi tips praktis dan contoh kode.