关于 twilio-sms
通过 Twilio CLI 或 REST API 执行 Twilio 电话号码和短信操作的技能。它指导凭据检查、号码管理、短信发送与状态查询,并防止泄露密钥和敏感消息内容。
主要功能
- 01检查 CLI 配置和凭据
- 02查找、列出和购买电话号码
- 03标记要保留的号码
- 04发送短信并查询状态
- 05查看收发消息
适用场景
- 01查找支持短信的号码
- 02购买并验证号码
- 03发送短信并检查状态
- 04查看某个号码的消息
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ steipete/ agent-scripts --skill twilio-sms安装后在 Claude Code 中输入/twilio-sms确认已加载。
附带文件agents/openai.yaml
详细介绍
Twilio 短信
用于 Twilio 电话号码和短信相关工作:创建/购买号码、列出已拥有的号码、保留/标记号码、发送短信,以及检查收发的消息。
安全
- 切勿打印 Account SID、身份验证令牌、API 密钥、TOTP 代码或完整的 1Password 项目 JSON。
- 不要在此技能中存储真实电话号码、SID、姓名或特定账户的项目 ID。
- 使用
$one-password读取机密。op仅限在 tmux 中使用。 - 如果需要通过桌面版 1Password 访问,请在这些命令中取消设置服务账户身份验证:
env -u OP_SERVICE_ACCOUNT_TOKEN op ...。 - 仅打印凭据形态:字段是否存在、长度,以及(如有用)前缀类别。
- 对外写入或记录时,除非用户要求读取/检查短信,否则不要泄露消息正文。
凭据路径
- 检查 Twilio CLI/配置文件:
twilio --version或npx -y twilio-cli --versiontwilio profiles:list或npx -y twilio-cli profiles:list
- 仅检查环境变量是否存在:
TWILIO_ACCOUNT_SIDTWILIO_AUTH_TOKEN- 可选的 API 密钥/密钥变量
- 如果环境变量只配置了部分内容,请先搜索 1Password 元数据。
- 优先选择字段匹配以下内容的项目:
TWILIO_ACCOUNT_SIDTWILIO_AUTH_TOKEN- 可选的
TWILIO_FROM_NUMBER
- 如果
op只能看到受限保管库,请使用env -u OP_SERVICE_ACCOUNT_TOKEN重试桌面端读取。 - 在购买/发送之前验证身份验证:
curl -sS -u "$TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN" \
"https://api.twilio.com/2010-04-01/Accounts/$TWILIO_ACCOUNT_SID.json"
CLI 设置
创建 Twilio CLI 配置文件需要账户身份验证令牌,而不仅仅是 API 密钥凭据:
npx -y twilio-cli profiles:create "$TWILIO_ACCOUNT_SID" \
--auth-token "$TWILIO_AUTH_TOKEN" \
--profile default --force --silent
npx -y twilio-cli profiles:use default
如果未安装 twilio,请使用 npx -y twilio-cli。
号码
列出已拥有的号码:
npx -y twilio-cli api:core:incoming-phone-numbers:list \
--properties phoneNumber,friendlyName,capabilities
搜索支持短信的美国本地号码:
npx -y twilio-cli api:core:available-phone-numbers:local:list \
--country-code US --sms-enabled --voice-enabled --limit 5
如果 CLI 参数格式不便使用或缺少标志,请使用 REST:
curl -sS -u "$TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN" \
"https://api.twilio.com/2010-04-01/Accounts/$TWILIO_ACCOUNT_SID/AvailablePhoneNumbers/US/Local.json?SmsEnabled=true&VoiceEnabled=true&PageSize=5"
购买一个候选号码:
curl -sS -u "$TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN" \
-X POST "https://api.twilio.com/2010-04-01/Accounts/$TWILIO_ACCOUNT_SID/IncomingPhoneNumbers.json" \
--data-urlencode "PhoneNumber=$PHONE_NUMBER"
购买后验证号码的所有权/功能。Twilio JSON 使用小写键:
capabilities.sms
capabilities.mms
capabilities.voice
标记用户想要保留的号码:
npx -y twilio-cli api:core:incoming-phone-numbers:update \
--sid "$PHONE_NUMBER_SID" \
--friendly-name "KEEP - <purpose>"
保留规则:只要号码仍在 Twilio 账户中且账单状态正常,就会保留该号码。除非用户明确要求,否则不要释放/删除号码。
短信
发送:
npx -y twilio-cli api:core:messages:create \
--from "$FROM_NUMBER" \
--to "$TO_NUMBER" \
--body "$BODY" \
-o json
获取状态:
npx -y twilio-cli api:core:messages:fetch --sid "$MESSAGE_SID" -o json
检查发往某个号码的入站短信:
npx -y twilio-cli api:core:messages:list \
--to "$NUMBER" --limit 20 -o json
检查从某个号码发出的出站短信:
npx -y twilio-cli api:core:messages:list \
--from "$NUMBER" --limit 20 -o json
单资源命令的 Twilio CLI JSON 可能会返回数组。请使用稳健的解析方式:
jq 'if type=="array" then .[0] else . end'
说明
- 国际短信的发送方可能显示为字母数字名称或运营商,而不是购买的美国号码。
- 美国短信可能需要通过合规审核。如果发送给美国收件人失败,请先检查 A2P/10DLC 注册状态,不要盲目重试。
- 试用账户可能会限制收件人。
评论
支持 Markdown