Swift 无法登录 Agora RTM
Cannot login to Agora RTM with Swift
所以我正在尝试在我的 SwiftUI 应用程序中实现 Agora RTM。下面是我用来尝试登录的代码,但我一直收到错误代码 3。非常感谢任何帮助。
class AgoraChatOO: NSObject, ObservableObject {
@Published var chatMessages: [ChatMessage] = []
@Published var kit: AgoraRtmKit?
@Published var rtmChannel: AgoraRtmChannel?
func updateKit(appId: String, delegate: AgoraRtmDelegate, channelDelegate: AgoraRtmChannelDelegate) {
kit = AgoraRtmKit(appId: appId, delegate: delegate)
guard let kit = kit else { return }
print(kit)
print(delegate)
print(channelDelegate)
kit.login(byToken: "my temp token", user: UIDevice.current.name) { [unowned self] (error) in
if error != .ok {
print("Error logging in: ", error.rawValue)
} else {
self.rtmChannel = kit.createChannel(withId: "testChannel", delegate: channelDelegate) //This is the AgoraRtmChannelDelegate, which must be set to get messageReceived, memberLeft, and memberJoined callbacks.
self.rtmChannel?.join(completion: { (error) in
if error != .channelErrorOk {
print("Error joining channel: ", error.rawValue)
}
})
}
}
}
}
我试过将 token 参数设置为 nil 进行测试,并且当我用上面的方法进行测试时,保证了一个新的。
好吧,这毕竟是相当容易的。用户参数字符串只允许使用某些字符,并且还强制执行字符限制。更改为更简单的字符串更正了问题(感谢 Matt Frazer 的建议)。
所以我正在尝试在我的 SwiftUI 应用程序中实现 Agora RTM。下面是我用来尝试登录的代码,但我一直收到错误代码 3。非常感谢任何帮助。
class AgoraChatOO: NSObject, ObservableObject {
@Published var chatMessages: [ChatMessage] = []
@Published var kit: AgoraRtmKit?
@Published var rtmChannel: AgoraRtmChannel?
func updateKit(appId: String, delegate: AgoraRtmDelegate, channelDelegate: AgoraRtmChannelDelegate) {
kit = AgoraRtmKit(appId: appId, delegate: delegate)
guard let kit = kit else { return }
print(kit)
print(delegate)
print(channelDelegate)
kit.login(byToken: "my temp token", user: UIDevice.current.name) { [unowned self] (error) in
if error != .ok {
print("Error logging in: ", error.rawValue)
} else {
self.rtmChannel = kit.createChannel(withId: "testChannel", delegate: channelDelegate) //This is the AgoraRtmChannelDelegate, which must be set to get messageReceived, memberLeft, and memberJoined callbacks.
self.rtmChannel?.join(completion: { (error) in
if error != .channelErrorOk {
print("Error joining channel: ", error.rawValue)
}
})
}
}
}
}
我试过将 token 参数设置为 nil 进行测试,并且当我用上面的方法进行测试时,保证了一个新的。
好吧,这毕竟是相当容易的。用户参数字符串只允许使用某些字符,并且还强制执行字符限制。更改为更简单的字符串更正了问题(感谢 Matt Frazer 的建议)。