使用 swift 在 1 个通道上创建 1 个 SendBird

create 1 on 1 channel SendBird using swift

我正在尝试创建一对一的通道连接,但是我无法弄清楚创建 SDBUser 的格式。我正在执行以下操作来尝试创建频道。

SBDGroupChannel.createChannelWithUsers([("123456", "1234567"], isDistinct: true) { (channel, error) in
            if error != nil {
                NSLog("Error: %@", error!)
                return
            } else {
                //this means that the channel was successfully created
                print(channel)

                //segue to the open chat view
                //segue here DREW
            }
        }

这些字符串是在 SendBird 中显示的 ID。它需要 SDBUser 类型并得到 String 的错误。

我尝试了以下方法来获取 SBDUser,但得到的值如下

let user1 = SBDUserListQuery.init(userIds: ["123456"])

但是用户值是SBDUserListQuery类型,所以还是不行。

我未能在 SendBird 文档中找到解决方案

SendBird 有多种方法可以使用用户对象或用户 ID 创建群组频道。您使用的方法是使用用户对象创建通道。下面link是另一种带用户ID的方法

https://docs.sendbird.com/ref/ios/Classes/SBDGroupChannel.html#//api/name/createChannelWithUserIds:isDistinct:completionHandler:

link 用于 Objective-C,但您可以像这样在 Swift 中假设相同的方法:

Swift 3:

SBDGroupChannel.createChannel(withUserIds: ["123456", "1234567"], isDistinct: true) { (channel, error) in
    // Do something.            
        }

SBDUserListQuery对象是一个获取用户列表的查询对象。如果要从查询对象中获取用户对象,则必须调用加载方法。

https://docs.sendbird.com/ref/ios/Classes/SBDUserListQuery.html#//api/name/loadNextPageWithCompletionHandler:

方法 returns 用户列表的 completionHandler 块。

Swift 3:

let query = SBDUserListQuery(userIds: ["123456"]);
query?.loadNextPage(completionHandler: { (users, error) in

        })