开发与工程 ✓ Microsoft · 官方 javaazure-communication-servicessmsotp-deliverydelivery-reportsmaven

Azure 通信服务 SMS Java 技能

帮助 Java 应用通过 Azure 通信服务发送短信并处理投递结果。

FollowSkills 评估 · FSRS-2.0
不推荐
48/ 100 五分制 2.4 / 5
信任安全13 / 25 · 2.6/5

文档提供 Entra ID、托管身份、连接字符串和访问密钥方案,并提示通过环境变量配置凭据;但发送短信和 Event Grid 回调会产生外部副作用,未要求用户确认、未说明授权/退订/合规边界,也没有回滚机制。OTP 示例把手机号放入 tag,可能扩大敏感数据暴露,因此未接近满分。

可靠稳定8 / 20 · 2.0/5

覆盖单收件人、批量、异步、错误处理和限流重试,失败结果与请求级异常均有说明;但示例存在缺少导入、环境变量要求与连接字符串用法不完全一致、重试策略简化且未处理幂等/重复发送等问题。仅静态阅读且没有该技能专属测试,因此不超过静态上限。

适用触发8 / 15 · 2.7/5

触发短语、Java SDK、短信通知、OTP、批量发送和投递报告场景较明确;但未声明不适用范围、资费/地区/运营商限制、合规要求或输入输出契约,也未说明中文内容、短信分段及中国大陆网络可达性。核心功能依赖 Azure Communication Services,环境适配证据不足。

规范维护9 / 15 · 3.0/5

具备 YAML 元数据、MIT 许可证、版本号、安装说明、分层示例、错误处理、最佳实践和 references/examples.md;但没有技能级 changelog、维护责任人、更新路径、兼容矩阵或已知限制清单,且版本与依赖更新策略不明确,因此扣分。

有效结果6 / 15 · 2.0/5

内容可直接支持常见 Java ACS SMS 集成,涵盖发送、批量、异步、投递报告和 OTP;但代码未被本次评审执行验证,部分示例需要补导入、配置和生产级安全/重试处理,实际结果仍需较多审查,故按静态评审上限保守给分。

证据核验4 / 10 · 2.0/5

源文件包含具体 Maven 坐标、API 调用、错误分支和完整示例,具备一定可审计性;但没有该技能路径的提交测试、CI 覆盖或第三方执行证据,仓库通用测试材料不能证明此技能关键路径,无法获得更高静态分数。

证据充分度: 评估于 2026年7月20日 审查版本 9ccaf7c3704a
使用前请注意
  • 发送短信前应明确用户授权、退订、地区合规、资费和运营商限制,并在应用层增加人工确认或业务审批。
  • 不要将手机号、OTP 或其他敏感信息放入 tag、日志或错误消息;优先使用托管身份/短期凭据,避免在代码或日志中暴露连接字符串和访问密钥。
  • 在采用示例前核对 azure-communication-sms 1.2.0 的实际 API、补齐导入,并为 429、网络失败、超时和幂等重试建立可恢复策略。
  • 确认 Azure Communication Services、Event Grid 以及短信发送能力在目标地区(尤其中国大陆)的可达性与合规性。
查看完整评分方法 →

它能做什么 & 适用场景

该技能面向使用 Azure Communication Services SMS Java SDK 的开发者。它涵盖单收件人和多收件人短信、同步与异步调用、投递报告、标签以及逐收件人的错误处理。示例展示了 DefaultAzureCredential、托管身份、连接字符串和 AzureKeyCredential 等客户端认证方式。适合需要短信通知、验证码、告警或批量发送的 Java 项目,但内容主要是代码模式,未提供完整应用或部署方案。

指导开发者添加 Maven 依赖,创建 SmsClient 或 SmsAsyncClient,调用 Azure Communication Services SMS API 向一个或多个 E.164 格式号码发送短信,并读取消息 ID、收件人、成功状态、HTTP 状态和错误信息。它还说明如何启用投递报告、添加业务标签、处理 429 限流,以及通过 Azure Event Grid 接收投递状态。

  1. Java 应用需要向单个用户发送登录验证码或一次性密码。
  2. 订单系统需要发送确认、状态变化或安全告警短信。
  3. 营销或运营服务需要向多个电话号码批量发送消息并逐一检查结果。
  4. 关键通知需要通过 Event Grid 接收 Delivered 或 Failed 等投递状态。
  5. 团队希望在本地开发使用 DefaultAzureCredential、生产环境使用托管身份。

优缺点一览

优点
  • 覆盖同步、异步、单收件人和批量发送模式。
  • 提供逐收件人的成功、状态码和错误信息处理示例。
  • 包含 Event Grid 投递报告、业务标签和 429 重试建议。
  • 同时展示 Entra ID、托管身份、连接字符串和 AzureKeyCredential 认证方式。
局限
  • 只针对 Java SDK,不能直接用于其他语言。
  • 未提供完整项目、部署配置或 Event Grid webhook 的可运行实现。
  • 来源没有给出该单项技能的独立测试覆盖信息。
  • 短信发送需要已配置的 Azure Communication Services 资源和发送方号码。

如何安装

安装整个仓库中的技能集合:运行 npx skills add microsoft/skills,然后在向导中选择所需技能。仓库 README 还记录了通过 git clone 后复制特定技能目录的手动方式;针对该技能的独立安装命令未在来源中说明。Java 项目还需添加 com.azure:azure-communication-sms:1.2.0 Maven 依赖。

如何使用

可用触发语句包括“send SMS Java”“SMS notification”“OTP SMS”“bulk SMS”或“delivery report SMS”。使用时提供发送方 ACS 电话号码、收件人号码和短信内容;需要时启用 delivery reports 并设置 tag。根据来源示例,可使用 DefaultAzureCredential、连接字符串或 AzureKeyCredential 创建客户端,再调用 send 或 sendWithResponse;异步场景使用 SmsAsyncClient。生产环境使用 DefaultAzureCredential 时,来源要求设置 AZURE_TOKEN_CREDENTIALS=prod 或指定凭据配置。

常见问题

这个技能是否包含短信服务本身的费用?
来源只说明 SDK、Azure Communication Services 和配置方式,没有提供价格信息。
发送失败会抛出异常吗?
单条消息错误通常通过 SmsSendResult 返回,不一定抛出异常;认证、网络等请求级失败示例使用 HttpResponseException 处理。
批量发送能否知道每个号码的结果?
可以。sendWithResponse 返回多个 SmsSendResult,示例逐个检查成功状态、收件人、消息 ID 和错误信息。
投递报告在哪里接收?
投递报告通过 Azure Event Grid 发送,需要为 ACS 资源配置 Event Grid 订阅。

同仓库的其他 Skills

均来自 microsoft/agent-skills

开发与工程 ✓ Microsoft · 官方

Azure Identity Python 认证技能

为 Python Azure 应用提供基于 Microsoft Entra ID 的可复用身份认证指导。

开发与工程 ✓ Microsoft · 官方

Azure Event Hubs Java 开发技能

帮助 Java 开发者构建高吞吐、可 checkpoint 的 Azure 事件流应用。

开发与工程 ✓ Microsoft · 官方

Azure Tables Python 技能

帮助 Python 开发者使用 Azure Tables 完成安全认证、实体管理、查询与批量事务操作。

开发与工程 ✓ Microsoft · 官方

Azure Identity TypeScript

为 TypeScript Azure 应用配置安全、可切换的 Microsoft Entra ID 身份验证。

自动化与运维 ✓ Microsoft · 官方

Azure 应用可靠性顾问

评估并提升 Azure Functions 与 App Service 的可靠性。

开发与工程 ✓ Microsoft · 官方

Azure 云架构师

帮助编码代理按照 Azure 架构中心最佳实践设计和审查生产级云系统。

开发与工程 ✓ Microsoft · 官方

Azure AI 文本分析 Python 技能

为 Python 开发者提供 Azure 文本分析与自然语言处理集成指导。

自动化与运维 ✓ Microsoft · 官方

Azure 资源架构可视化器

分析 Azure 资源组及其依赖关系,生成详细的 Mermaid 架构图。

开发与工程 ✓ Microsoft · 官方

Azure Maps .NET 开发技能

为 .NET 应用提供地理搜索、路线、地图、定位与天气开发指导。

开发与工程 ✓ Microsoft · 官方

Azure AI Vision 图像分析技能

为 Python 编码代理提供 Azure AI Vision 图像理解实现指南。

开发与工程 ✓ Microsoft · 官方

Azure Blob Storage Python 技能

帮助 Python 开发者安全高效地操作 Azure Blob Storage。

开发与工程 ✓ Microsoft · 官方

Azure Queue Storage Python 技能

帮助编码代理使用 Python 构建安全、可靠的 Azure Queue Storage 异步消息处理。

自动化与运维 ✓ Microsoft · 官方

Azure AI 网关治理

用 Azure API Management 统一治理 AI 模型、MCP 工具和智能体流量。

自动化与运维 ✓ Microsoft · 官方

AKS Automatic 就绪评估

评估 Kubernetes 工作负载能否迁移到 AKS Automatic,并定位兼容性阻塞项。

开发与工程 ✓ Microsoft · 官方

Azure Cosmos DB .NET 资源管理技能

用 .NET 通过 ARM 部署和管理 Azure Cosmos DB 资源。

开发与工程 ✓ Microsoft · 官方

Azure Playwright 工作区管理技能

用 .NET 通过 Azure Resource Manager 配置和管理 Microsoft Playwright Testing 工作区。

开发与工程 ✓ Microsoft · 官方

Azure Cosmos DB Python 技能

帮助 Python 开发者可靠地构建和操作 Azure Cosmos DB NoSQL 应用。

开发与工程 ✓ Microsoft · 官方

Azure Key Vault Python SDK 技能

帮助 Python 编码代理安全管理 Azure Key Vault 中的机密、加密密钥和证书。

开发与工程 ✓ Microsoft · 官方

Azure API Management Python 技能

帮助编码代理使用 Python SDK 管理 Azure API Management 的服务、API、产品、订阅与策略。

开发与工程 ✓ Microsoft · 官方

Azure Monitor 查询 Python 技能

帮助 Python 开发者查询 Azure Monitor 日志与指标。

相关 Skills