mcpField
T
twilio

twilio

github.com/vercel-labs测试与质量2.0k75 次安装2 天前更新
代码仓库

关于 twilio

面向开发者的 Twilio REST API 有状态模拟器,可在本地测试消息、验证、通话和对话功能,并提供预置凭据及入站事件模拟路由。

主要功能

  1. 01有状态模拟 Twilio REST API
  2. 02预置账户与凭据
  3. 03消息、Verify、Voice 和 Conversations 路由
  4. 04模拟入站事件与回调
  5. 05检查本地验证码

适用场景

  1. 01测试外发消息及状态回调
  2. 02验证 OTP 流程
  3. 03模拟入站短信和电话
  4. 04无需真实 Twilio 流量进行应用测试

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/vercel-labs/emulate --skill twilio

安装后在 Claude Code 中输入/twilio确认已加载。

详细介绍

Twilio API 模拟器

有状态的 Twilio REST 模拟,包含预置账户、Auth Token、API 密钥、入站电话号码、Programmable Messaging、Messaging Services、Verify、基础语音通话、Conversations REST 资源、签名 Webhook、本地模拟器路由和检查器。

启动

本地监听器默认绑定到 127.0.0.1。如需从容器或其他机器访问,请向 CLI 传入 --host 0.0.0.0,或向 createEmulator 传入 hostname: '0.0.0.0'。配置 --base-url 或 baseUrl,以设置这些客户端可访问的对外公布 URL。

npx emulate --service twilio

所有服务启动时的默认 URL:http://localhost:4013;仅启动 Twilio 时为 http://localhost:4000。

默认值

TWILIO_ACCOUNT_SID=AC00000000000000000000000000000000
TWILIO_AUTH_TOKEN=twilio_test_auth_token
TWILIO_API_KEY=SK00000000000000000000000000000000
TWILIO_API_SECRET=twilio_test_api_secret
TWILIO_PHONE_NUMBER=+15551234567
TWILIO_VERIFY_SERVICE_SID=VA00000000000000000000000000000000

URL 映射

Twilio 实际 URL模拟器 URL
https://api.twilio.com/2010-04-01/...$TWILIO_EMULATOR_URL/2010-04-01/...
https://messaging.twilio.com/v1/...$TWILIO_EMULATOR_URL/messaging/v1/...
https://verify.twilio.com/v2/...$TWILIO_EMULATOR_URL/verify/v2/...

官方 Node SDK 会构建绝对 Twilio 产品 URL。在 SDK 测试中,请使用自定义请求客户端,将这些主机重写为上述模拟器前缀。

身份验证

HTTP Basic 身份验证接受以下任一组合:

  • Account SID 和 Auth Token
  • API Key SID 和 API Key Secret

核心路由

  • POST /2010-04-01/Accounts/{AccountSid}/Messages.json - 创建出站消息
  • GET /2010-04-01/Accounts/{AccountSid}/Messages.json - 列出消息
  • POST /2010-04-01/Accounts/{AccountSid}/Calls.json - 创建出站通话
  • POST /verify/v2/Services/{ServiceSid}/Verifications - 发起验证
  • POST /verify/v2/Services/{ServiceSid}/VerificationCheck - 检查验证码
  • POST /conversations/v1/Services/{ServiceSid}/Conversations - 创建会话
  • POST /conversations/v1/Services/{ServiceSid}/Conversations/{ConversationSid}/Participants - 添加参与者
  • POST /conversations/v1/Services/{ServiceSid}/Conversations/{ConversationSid}/Messages - 添加消息
  • POST /_twilio/simulate/inbound-message - 模拟入站 SMS
  • POST /_twilio/simulate/message-status - 模拟消息状态回调
  • POST /_twilio/simulate/inbound-call - 模拟入站通话

SMS 和 OTP 测试

  • 预置的 Verify Service 验证码为 123456。
  • 创建 Verification 时,使用 CustomCode 可为单次验证指定验证码。
  • 端到端测试中,可通过 Basic 身份验证使用 GET /_twilio/simulate/verification-code?To=...&ServiceSid=... 获取本地最新验证码。
  • 使用 POST /_twilio/simulate/verification-status,并提供 VerificationSid 或 To,可强制设置本地 Verify 状态。
  • 使用 POST /_twilio/simulate/inbound-message 测试入站 SMS Webhook。
  • 入站 SMS 会优先使用已分配的 Messaging Service inbound_request_url,否则回退到电话号码的 sms_url。
  • 使用 POST /_twilio/simulate/message-status 测试出站状态回调。

当前限制

尚未实现真实 SMS、MMS、WhatsApp、电子邮件、语音、运营商、合规、计费、SendGrid、Studio、Flex、TaskRouter、Video、Sync、Segment、Conversations SDK WebSocket 行为或完整的 TwiML 解释器行为。

与内置模拟器并用自定义模拟器

使用 npx emulate init --custom inventory 搭建第三方 API 模拟器和测试的脚手架。在 emulate.config.ts 中使用 emulate 提供的 defineConfig 注册它,并与 { emulator: "twilio" } 等内置条目并列。运行 npx emulate start --watch 可重新加载导入,并在打印出的 /_emulate URL 查看自定义状态。成功重新加载后,会将本次运行重置为种子状态。现有的扁平种子配置仍可使用;--config 用于指定显式文件。有关编写和测试第三方 API 模拟器的信息,请参阅 https://emulate.dev/docs/custom-emulators。

评论

支持 Markdown