ios - 无法使用新的对话 API 获取具有频道 ID 的频道
问题描述
迁移到新的对话 API 后,
当尝试获取具有频道 ID 的频道时,我收到以下错误:
<TCHResult: 0x6000039e60e0> - code: 102; text: Conversation with given sid not found.
以下是我遵循的步骤:
首先,使用正确的 jwt 令牌初始化聊天客户端:
TwilioConversationsClient.conversationsClient(withToken: token, properties: nil, delegate: self) { (result, chatClient) in
self.client = chatClient
self.client?.delegate = self
}
其次,从后端获取频道ID,并尝试获取该ID的频道。我确保频道 ID 有效,并且在迁移前存在聊天前对话。
self.client?.conversation(withSidOrUniqueName: channelId, completion: { (result, conversation) in
// Error here, conversation is nil
})
当我在获取频道之前打印客户详细信息时,我得到了这个:
client Optional(<<TCHUser: 0x6000038fe700>: identity: '100360', friendlyName: 'xxxxx', attributes: '<TCHJsonAttributes: 0x600003bcbe50>'>) Optional(2) Optional(2)
用户详细信息及其同步状态和连接状态均有效。
但我仍然没有得到频道。不知道我错过了什么。
解决方案
在调用客户端之前,您应该等待同步事件。
.completed
从 – conversationsClient:synchronizationStatusUpdated收到同步状态后,客户端将完全正常工作:
推荐阅读
- julia - Dataframes.jl 数组的左连接等效项
- postgresql - 为什么创建以下准备好的语句会失败?
- cluster-computing - 里德-所罗门奇偶校验困境:数据分片与奇偶校验分片
- visual-studio-2017 - Service Fabric 错误:未授权连接
- spring-boot - Spring Boot Oauth2,无法从 javascript 客户端发送 clientId
- html - chrome 扩展浏览器操作弹出窗口中的幻影滚动条大小的边距
- vmware-clarity - 如何使用 Project Clarity 针对多种设备外形进行设计?
- html - 4 相同的图像与文本覆盖响应
- c++ - Detecting/Segmenting Face and Facial Features WITHOUT using a trained model: openCV C++
- signalr - How to check detect signalR version used on client browser?