Каков правильный порядок вызовов API для подключения к ConnectyCube и некоторые общие вопросы

#flutter #connectycube

#flutter #connectycube

Вопрос:

После многих часов проб и ошибок мне удалось выполнить свой первый успешный вызов API для отправки группового сообщения в Flutter. Но я не уверен, правильно ли я все делаю. К сожалению, документация не очень помогает. Имхо, это может быть намного меньше и гораздо более информативно. Я был бы очень рад, если кто-нибудь сможет ответить на все вопросы здесь, поскольку ответы будут полезны для многих новичков Connecty Cube.

Прямо сейчас порядок, в котором я совершаю свои звонки, выглядит следующим образом:

 import 'package:connectycube_sdk/connectycube_chat.dart' as cc;
await cc.init(APP_ID, AUTH_KEY, AUTH_SECRET);
cubesession = await cc.createSession(); //create app session
//registeredUser = await cc.signUp(user); //if necessary
myuser = await cc.signInByLogin(userDocId, password);
cubeSession = await cc.createSession(myuser); //upgrade to user session
createdDialog = await cc.createDialog(newDialog); //is this for one time only? I can set the dialogId in the newDialog object but it is overwritten by a random uuid in the console. We should know what we can set and not clearly.
await cc.CubeChatConnection.instance.login(myuser); //login?? bad choice of a method mate. This starts the xmpp 2 way connection I guess.
subscribe and listen to cc.CubeChatConnection.instance.chatMessagesManager.chatMessagesStream
 

Скажите, указан ли выше правильный способ / порядок вызова методов API.

Также как и в каком порядке освобождать ресурсы? CubeUser / CubeSession / CubeDialog / chatMessagesStream /CubeChatConnection

Как мы можем установить пользовательское свойство для CubeUser? Я хочу передать свой идентификатор документа пользователя Firebase

Как мы можем установить пользовательское свойство для CubeDialog? Я хочу передать свой идентификатор Firebase post doc. Я вижу, что есть свойство String name, но я хочу использовать его для его реальной цели.

Как присоединиться / покинуть CubeDialog? (отличается от добавления и удаления пользователей) Всегда ли нам нужно создавать диалоговое окно? Или нам нужно получить диалоги, в которых мы находимся, и каким-то образом оставить их?

Пользователь должен иметь возможность покинуть диалоговое окно, не удаляя их администратором. Как нам это сделать?

Почему идентификатор является целым числом?

Почему в высокоуровневом API FLutter нет возвращаемых типов void?

Аргументы Param неясны. Это просто объекты Map<String, String>, поэтому мы не знаем, какие ключевые поля в них вводить. Например;

 Future<PagedResult<CubeDialog>> getDialogs([Map<String, dynamic> params]) {
  return GetDialogsQuery(params).perform();
}
//What keys should I put in params to fully use pagination?
 

Ответ №1:

на GitHub есть тема с вашим вопросом