создать 1 на 1 канал SendBird, используя 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. Возникает ошибка, что он ожидал тип SDBUser, а получил String.

Я пробовал следующее, чтобы получить SBDUser, но получаю следующее значение

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

но пользовательское значение имеет тип SBDUserListQuery, так что все равно не работает.

Я не смог найти решение в документации SendBird.


person dgelinas21    schedule 22.08.2017    source источник


Ответы (1)


SendBird имеет различные методы для создания группового канала с пользовательскими объектами или идентификаторами пользователей. Метод, который вы использовали, заключается в создании канала с пользовательскими объектами. Следующая ссылка — это еще один метод с идентификаторами пользователей.

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

Ссылка предназначена для Objective-C, но вы можете использовать тот же метод в 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:

Блок completionHandler метода возвращает список пользователей.

Свифт 3:

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

        })
person Jebeom Gyeong    schedule 23.08.2017
comment
при попытке создать канал завершенияHandler выдает ошибку, но оба идентификатора пользователя существуют. Любые идеи относительно того, почему это может быть? - person dgelinas21; 25.08.2017
comment
@dgelinas21 В чем ошибка? Сообщите мне error.domain и error.code. - person Jebeom Gyeong; 28.08.2017
comment
Оказывается, это была проблема с быстрой конвертацией версий, я ее исправил. - person dgelinas21; 31.08.2017