Azure Communication Chat Java
为 Java 开发者提供 Azure 实时聊天线程、消息与参与者管理的实现指南。
技能明确使用 CommunicationTokenCredential 和用户访问令牌,并提示令牌过期;但未说明令牌应如何安全存储、不会记录或外传哪些聊天数据,也未要求对创建、删除线程、删除消息、添加或移除参与者等外部副作用进行用户确认,缺少回滚和最小权限说明,因此扣分。
覆盖客户端创建、线程、消息、参与者、回执、输入状态、分页和 HTTP 错误处理,且提供同步与异步示例;但主文档与 references 的依赖版本分别为 1.6.0 和 1.6.4,部分示例缺少必要导入(如 ChatAsyncClient、OffsetDateTime、Context),异常场景、重试、刷新令牌和 API 兼容性验证不足,因此静态可靠性受限。
目标用户、Java/Azure Communication Services 场景和触发短语较清楚,覆盖常见聊天功能;但未声明不适用场景、输入输出边界、服务配置前提、区域可达性或中文使用指导,且依赖 Azure 外部服务,因此扣分。
具备 front matter、MIT 许可证、版本字段、安装说明、分节示例、参考文件、错误处理和最佳实践;但版本信息不一致,没有变更日志、维护责任和更新路径,安全限制、常见问题和渐进式引用说明也不充分,因此扣分。
示例直接覆盖聊天应用的核心 CRUD 和实时交互任务,具有较高参考价值;但代码片段存在版本和导入不一致,缺少完整可构建项目、认证配置、服务端前提及关键边界处理,使用者仍需较多校正,故未超过静态上限并扣分。
技能文件和 references 提供了可审计的代码与错误码材料,仓库还展示了通用评估基础设施;但提供的材料没有该技能专属的提交测试、CI 覆盖或第三方执行结果,无法静态证明关键 API 示例可复现,因此扣分。
- 使用前应统一 azure-communication-chat 版本,并逐段核对当前 SDK API、导入和异步客户端类型。
- 不要把用户访问令牌硬编码或打印到日志;应补充安全存储、刷新、撤销和最小权限指导。
- 创建或删除线程、删除消息、修改参与者会产生不可逆或外部可见影响,应在执行前确认并说明缺少回滚机制。
- 发送 HTML 和聊天内容可能引入内容注入、隐私和数据驻留风险;技能未提供过滤、编码或数据流边界说明。
- 核心能力依赖 Azure Communication Services,需确认账户、权限、网络区域和中国大陆可达性。
它能做什么 & 适用场景
该技能面向使用 Azure Communication Services Chat Java SDK 构建实时聊天应用的开发者。它覆盖聊天线程创建与删除、消息发送与查询、消息更新与删除、参与者管理、已读回执和输入状态通知。内容包含 Maven 依赖、同步与异步客户端创建、分页、错误处理、消息类型和令牌管理建议。它适合已经使用 Azure Communication Services、需要 Java 示例代码的项目;但它不是完整应用模板,也未提供测试套件或部署流程。
指导开发者添加 com.azure:azure-communication-chat:1.6.0 Maven 依赖,使用 CommunicationTokenCredential 创建 ChatClient 或异步客户端,并连接 Azure Communication Services 端点。它提供创建、查询、更新和删除聊天线程的代码,演示发送文本或 HTML 消息、分页读取消息、获取单条消息、更新和删除消息。它还演示列出、添加和移除参与者,设置共享历史时间,发送和查询已读回执,发送输入状态通知,以及读取或更新线程主题。它说明如何根据 HTTP 状态码处理未授权、禁止访问和线程不存在等错误,并列出环境变量和令牌刷新、分页、系统消息过滤等最佳实践。
- 使用 Java 和 Azure Communication Services 构建项目讨论聊天室的后端开发者,可用它创建线程、添加 Alice 和 Bob 等参与者并发送消息。
- 需要企业聊天消息列表的 Java 开发者,可用它读取分页消息、识别发送者和时间,并处理已编辑或已删除消息。
- 开发已读状态和输入提示功能的团队,可参考已读回执与 typing notification 的调用方式。
- 需要控制新参与者可见历史范围的开发者,可在添加参与者时设置 shareHistoryTime。
- 需要排查聊天 API 认证或资源访问问题的开发者,可按 401、403 和 404 状态码定位常见失败原因。
优缺点一览
- 覆盖聊天线程、消息、参与者、已读回执和输入状态等核心操作。
- 提供同步和异步客户端创建、分页和 HTTP 错误处理示例。
- 示例直接对应 Azure Communication Chat Java SDK 类和 Maven 坐标。
- 仓库采用 MIT 许可证,并处于持续开发和维护中。
- 内容依赖 CommunicationTokenCredential 和有效 Azure Communication Services 端点,未覆盖令牌签发或完整身份系统。
- 未提供完整应用架构、前端实现、部署流程或测试套件。
- 技能只聚焦 Java 聊天 SDK,不能代表仓库中其他技能的能力。
- 源材料未证明示例已在特定 Java 版本、操作系统或生产环境中测试。
如何安装
运行 npx skills add microsoft/skills,在安装向导中选择 azure-communication-chat-java。README 说明技能会安装到所选 Agent 的目录,例如 GitHub Copilot 使用 .github/skills/;该技能原始路径为 .github/plugins/azure-sdk-java/skills/azure-communication-chat-java/SKILL.md。安装技能集合的具体向导选项之外,源材料未说明其他专用安装步骤。
如何使用
在已安装该技能的编码 Agent 中输入类似“用 Java 和 Azure Communication Services Chat SDK 创建聊天线程、发送消息并实现已读回执”的请求。实现项目还需要加入 com.azure:azure-communication-chat:1.6.0 Maven 依赖,配置 AZURE_COMMUNICATION_ENDPOINT 和 AZURE_COMMUNICATION_USER_TOKEN,并提供有效的 CommunicationTokenCredential。