история разговоров один на один с открытым огнем и привкусом - PullRequest
0 голосов
/ 04 июля 2018

Я установил открытый огонь в моей системе, и с помощью инструмента почтальона я могу создать пользователя и с помощью smack я могу также отправить сообщение другому пользователю ... но проблема в том, что я не знаю, как это чтобы получить историю чата между двумя пользователями ... это означает, что если я отправил имена пользователей и от пользователей, мне нужно получить предыдущую историю чата. Я могу видеть историю чата на серверах открытого огня -> папка архивирования .. Но я не понимаю, как получить историю чата. Есть ли Rest API, доступные для извлечения истории чата между двумя пользователями ..

Пожалуйста, предоставьте любое возможное решение

Спасибо

Это история чата, которую я вижу

enter image description here

1 Ответ

0 голосов
/ 17 июля 2018

Если вы хотите использовать, получите историю чата из openfire с smack:

  1. Как вы уже сделали, включите MAM (XEP-0313), установив плагин MonitoringService в openfire.
  2. Теперь с сервера openfire перейдите по адресу: Сервер> Архивация> Настройки архивации, отметьте «Архивировать чаты один на один» и «Архивировать чаты группы» и сохраните, нажав «Обновить настройки».
  3. Отныне любые чаты будут сохраняться на OpenFire. Начните новый чат с кем-то и переустановите приложение для Android.
  4. MAM является частью " smack-экспериментальный ". Таким образом, вы должны добавить эту строку в ваш gradle:

    implementation 'org.igniterealtime.smack:smack-extensions:4.2.2
    
  5. После успешного подключения и авторизации для одного из них, вы можете получить страницу истории чата за страницей или, как вам нужно, с этим кодом:

    MamManager manager = MamManager.getInstanceFor(connection);
    MamManager.MamQueryResult r = manager.mostRecentPage([userBareJID], [numberOfMessages]);
    if (r.forwardedMessages.size() >= 1) //printing first of them
    {
        Message message = (Message) r.forwardedMessages.get(0).getForwardedStanza();
        Log.i("mam", "message received" + message.getBody());
    }
    
...