Use Cases

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 組み込め.認証implementasipanduanWebhookimplementasi juga 合わせて参考 .

Untuk Twilioの詳細, lihat Twilio公式ドキュメント.

#Claude Code #Twilio #SMS #通話 #APIintegrasi