你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用于 Java 的 Azure 通信服务通用客户端库 - 版本 1.2.13
Azure 通信公共包含通常用于与Azure 通信服务通信的数据结构。 它旨在提供交叉关注点,例如身份验证。
入门
先决条件
- 具有活动订阅的 Azure 帐户。 免费创建帐户。
- Java 开发工具包 (JDK) 8 或更高版本。
- Apache Maven。
- 已部署的通信服务资源。
包括 BOM 文件
请将 azure-sdk-bom 包含在项目中,以依赖于库的正式发布 (GA) 版本。 在以下代码段中,将 {bom_version_to_target} 占位符替换为版本号。 若要详细了解 BOM,请参阅 AZURE SDK BOM 自述文件。
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-sdk-bom</artifactId>
<version>{bom_version_to_target}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
然后在没有版本标记的依赖项部分中包含直接依赖项。
<dependencies>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-communication-common</artifactId>
</dependency>
</dependencies>
包括直接依赖项
如果要依赖于 BOM 中不存在的特定库版本,请将直接依赖项添加到项目,如下所示。
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-communication-common</artifactId>
<version>1.2.13</version>
</dependency>
关键概念
若要使用Azure 通信服务,将使用资源访问密钥进行身份验证。
Azure 通信服务支持使用资源访问密钥进行 HMAC 身份验证。 若要应用 HMAC 身份验证,请使用访问密钥构造 CommunicationClientCredential
并实例化 以 CommunicationIdentityClient
管理用户和令牌。
CommunicationTokenCredential
对象 CommunicationTokenCredential
用于通过通信服务(如聊天或通话)对用户进行身份验证。 可以选择性地提供自动刷新机制,以确保在通信期间持续稳定的身份验证状态。
根据你的方案,可能需要使用以下项初始化 CommunicationTokenCredential
:
- 静态令牌 (适用于生存期较短的客户端,例如) 发送一次性聊天消息或
- 一个回调函数,可确保持续身份验证状态 (理想状态,例如,对于长时间的调用会话) 。
可以使用 Azure 通信标识库获取通过构造函数或令牌刷新器回调提供给 CommunicationTokenCredential
的令牌。
示例
使用静态令牌创建凭据
对于生存期较短的客户端,不需要在过期时刷新令牌,可以使用 CommunicationTokenCredential
静态令牌进行实例化。
String token = System.getenv("COMMUNICATION_SERVICES_USER_TOKEN");
CommunicationTokenCredential tokenCredential = new CommunicationTokenCredential(token);
使用回调创建具有主动刷新的凭据
或者,对于生存期较长的客户端,可以使用回调创建 , CommunicationTokenCredential
以便在令牌过期时续订令牌。
此处,我们假设有一个函数,该函数 fetchTokenFromMyServerForUser
发出网络请求来检索用户的令牌字符串。
函数必须 fetchTokenFromMyServerForUser
返回一个有效的令牌 (,并在将来) 一直设置到期日期。
(可选)可以启用主动令牌刷新,在上一个令牌即将过期后立即获取新令牌。 使用此方法时,请求不太可能被阻止来获取新令牌:
String token = System.getenv("COMMUNICATION_SERVICES_USER_TOKEN");
CommunicationTokenRefreshOptions tokenRefreshOptions = new CommunicationTokenRefreshOptions(fetchTokenFromMyServerForUser)
.setRefreshProactively(true)
.setInitialToken(token);
CommunicationTokenCredential tokenCredential = new CommunicationTokenCredential(tokenRefreshOptions);
疑难解答
In progress。
后续步骤
查看 Azure 通信服务的其他客户端库
贡献
本项目欢迎贡献和建议。 大多数贡献要求你同意贡献者许可协议 (CLA),并声明你有权(并且确实有权)授予我们使用你的贡献的权利。
提交拉取请求时,CLA 机器人将自动确定你是否需要提供 CLA,并相应地修饰 PR(例如标签、注释)。 直接按机器人提供的说明操作。 只需使用 CLA 对所有存储库执行一次这样的操作。
此项目采用了 Microsoft 开放源代码行为准则。 有关详细信息,请参阅行为准则常见问题解答,或如果有任何其他问题或意见,请与 联系。