@chat-adapter/twilio (英语)
npm 软件包 :
@chat-adapter/twilio
Twilio 适应器 聊天SDK。用 Twilio Messing webhoks 和 Messages API 构建短消息和 MMS bots .
联合国 聊天-sdk.dev/适应者/官方/twilio 指南: vercel.com/kb/chat-sdk (英语)
安装
pnpm add @chat-adapter/twilio
带CLI的脚手架
用这个适配器预选的新Twilio机器人:
npx create-chat-sdk@latest my-bot --adapter twilio memory
访问 适配器目录 见其他官方和供应商官方适配器.
使用量
适配器自动检测器 TWILIO_ACCOUNT_SID, (中文(简体) ), TWILIO_AUTH_TOKEN, (中文(简体) ), TWILIO_PHONE_NUMBER,以及 TWILIO_MESSAGING_SERVICE_SID 从环境变量:
import { createTwilioAdapter } from "@chat-adapter/twilio";
import { Chat } from "chat";
const bot = new Chat({
userName: "mybot",
adapters: {
twilio: createTwilioAdapter(),
},
});
bot.onDirectMessage(async (thread, message) => {
await thread.post(`You said: ${message.text}`);
});
指向您的 Twilio 网络通讯路径 bot.webhooks.twilio(request)数字 :
import { bot } from "@/lib/bot";
export async function POST(request: Request): Promise<Response> {
return bot.webhooks.twilio(request);
}
配置
createTwilioAdapter({
accountSid: process.env.TWILIO_ACCOUNT_SID,
authToken: process.env.TWILIO_AUTH_TOKEN,
phoneNumber: process.env.TWILIO_PHONE_NUMBER,
messagingServiceSid: process.env.TWILIO_MESSAGING_SERVICE_SID,
webhookUrl: "https://your-domain.com/api/webhooks/twilio",
});
使用 phoneNumber 用于一个Twilio数字,或 messagingServiceSid 当通过Twilio通讯服务发送时.
打字指标
WhatsApp 和 RCS 对话可以通过 thread.startTyping(). Twilio's v3 In指示器 API 使用一个带有频道特定 JSON 的 URL :
- 何为App:
{ channel: "WHATSAPP", messageId }(输入信件 SID) - RCS: 请检查URL=值 (帮助)
{ channel: "RCS", from: "rcs:<agent_id>", to: "rcs:+E164", event: "START" }
在WhatsApp上,Twilio也将被引用的消息标为已读. 电话号码线程是短消息,从不发送打字. 通讯服务MG…) 线索仅在 rcsSenderId 已设定,线程有输入消息; rcs: 线程总是这样。 如果Twilio拒绝请求,适配器会记录一个警告而不是扔出. 设定 messagingApiUrl (或 apiUrl)将打字请求指向代理或模拟器.
媒体
入境的MMS媒体作为附件被曝光. Twilio 媒体 URL 是私有的, 因此附件包括 fetchData() 用于认证下载.
外出 MMS 支持公开附件 url 数值。 Chat SDK不能将二进制文件上传到Twilio,因为Twilio的Messages API需要Twilio可以获取的媒体URL.
模板
卡片只根据RCS发送者的需求创建内容API模板. 要在任何频道上发送一个模板, 例如一个经批准的WhatsApp模板, 请将其内容Sid 传递给 sendTemplate数字 :
const twilio = bot.getAdapter("twilio");
const threadId = twilio.encodeThreadId({
sender: "whatsapp:+15550000001",
recipient: "whatsapp:+15551234567",
});
await twilio.sendTemplate(threadId, {
contentSid: "HXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
contentVariables: { "1": "Tomorrow at 2pm" },
});
什么App模板需要一个 whatsapp: 发送器或带有WhatsApp发送器的邮件服务。 以这种方式发送的模板上的快速复制自带不作为 Chat SDK 动作解码: 带信体的自带作为正则消息到达, 且自带无法到达 onAction 以原始按钮打印为 actionId。 。 。 .
低级助手
运行时间灯 api, (中文(简体) ), format, (中文(简体) ), voice,以及 webhook 子路径可用于仅需要Twilio原始物的应用. 这些子路径不导入完整的 Chat SDK 适配器或 twilio npm 软件包.
语音
语音呼叫被曝光为低级帮助者,而不是通过短消息/MMS适配器进行路由. 使用 @chat-adapter/twilio/voice 与 @chat-adapter/twilio/webhook 当您的应用程序拥有语音路由, 并想要重用 TwiML 或调用更新助手时 .
自定义语音路由在返回TwiML之前,应当验证Twilio签名并应用自己的呼叫器许可列表.
AI 编码代理
如果您使用OpenAI Codex, Claude Code, 或 Cursor 等AI编码代理, 在写入代码前安装 Chat SDK 技能, 使其了解 SDK API, 适配器模式, 以及项目常规 .
npx skills add vercel/chat
技术参考文献 node_modules/chat/docs,加上已发布的软件包中的适配器指南和启动模板.
您也可以安装 Vercel 插件 包括Chat SDK技术与专家代理、代理斜线指令
npx plugins add vercel/vercel-plugin
插件是可选的;单是技能就足以用Chat SDK来构建.
关于可代理阅读的文件,见 聊天- sdk.dev/llms.txt (页数索引)或 聊天- sdk.dev/llms- full.txt (全文).
许可证
麻省理工学院