0

我正在尝试使用Azure Communication Services (Chat)在 Android 应用程序中实现聊天功能。我使用https://docs.microsoft.com/en-us/azure/communication-services/quickstarts/chat/get-started?pivots=programming-language-android这个链接来设置 Android 项目。在 Android 应用程序内部,我们需要很少的 Azure 通信资源配置数据,例如,

String endpoint = "https://<resource>.communication.azure.com";
String firstUserId = "<first_user_id>";
String secondUserId = "<second_user_id>";
String firstUserAccessToken = "<first_user_access_token>";

在浏览了 Microsoft doc 之后,我发现了这个链接Access Token Generation,一个用于创建Identity.IDAccess Token的控制台应用程序。我使用了相同的访问令牌和 Identity.ID,它是由控制台应用程序为 FirstUserAccessToken 和 First UserID 生成的。完成此操作后,我运行了 Android 应用程序,但在调用时出现空指针异常

CreateChatThreadResult createChatThreadResult = chatAsyncClient.createChatThread(createChatThreadOptions).get();

在调用.get app 时会引发异常。

java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“int com.azure.android.core.http.HttpResponse.getStatusCode()”

首先,想知道我使用的AccessTokenUserId是否正确。

我在这里错过了什么吗?或者是否有任何服务器端设置需要做同样的事情?

4

1 回答 1

0

首先,想知道我使用的 AccessToken 和 UserId 是否正确。

是的,使用CommunicationIdentityClient来创建用户并发布令牌是正确的方法。只要确保您指定了正确的范围。此示例需要设置CHAT范围。

List<CommunicationTokenScope> scopes = Arrays.asList(CommunicationTokenScope.CHAT);
CommunicationUserIdentifierAndToken result = communicationIdentityClient.createUserAndToken(scopes);

最近,添加了一个新选项来快速生成用于测试的 Azure 通信服务访问令牌- 您可以直接在 Azure 门户中进行。

我只是快速尝试了来自 GitHub 的最终示例代码,它完美运行。我采取的步骤:

  • 已安装 Android Studio + Android 11 SDK(API 级别 30)
  • 创建了运行 Android 11 的 Pixel 4 设备
  • 克隆了回购
  • endpoint, firstUserId, secondUserId,替换firstUserAccessToken为 Azure 门户中生成的值
  • 运行示例 + 成功调试它

调试 android 的聊天示例应用程序

于 2021-12-09T14:55:48.753 回答