Шаг 3. Прочие настройки

Кроме установки перечисленных ранее интерфейсов для корректной работы приложения на базе Webim Mobile SDK необходимо произвести ряд настроек в коде приложения.

  1. Необходимо правильно настроить процедуру подсчёта visitor fields и hash.
    Приватный ключ аккаунта не должен храниться на устройстве или где бы то ни было, кроме сервера заказчика. В противном случае появляется серьёзная угроза безопасности и риск утечки переписок клиента третьим лицам.

    Пример передачи json-encoded объекта посетителя SDK:

    .setVisitorFieldsJson("{
        "id":"1234567890987654321",
        "display_name":"Никита",
        "hash":"ffadeb6aa3c788200824e311b9aa44cb"
    }")
    

    Подробно об идентификации авторизованных клиентов можно почитать в этой статье.

  2. Для приложения на базе SDK может быть использован обфускатор. В этом случае необходимо задавать исключения в правилах обфускатора, чтобы определённые классы не обфусцировались — это необходимо для корректной работы приложения на базе Webim Mobile SDK. В частности, при использовании обфускатора Proguard следует задать в его правилах следующее:
    -keep public class com.webimapp.* { *; }
    

    Это будет означать, что указанный пакет/класс не будет "шифроваться" обфускатором.

  3. Обеспечить необходимые сетевые доступы.

    Для мобильного устройства, на котором установлено мобильное приложение, интегрированное с Webim Mobile SDK, должны быть открыты исходящие порты для следующих URL-адресов:

    • https://*.webim.ru/l/v/m/action 443 (POST) - используется для передачи действий от клиентов.
    • https://*.webim.ru/l/v/m/delta 443 (GET) - используется для получения инкрементальных обновлений.
    • https://*.webim.ru/l/v/m/download 443 (GET) (не используется в SDK, но нужно для скачивания файлов в мобильном приложении)
    • https://*.webim.ru/l/v/m/upload 443 (POST) - используется для отправки файлов с клиента на сервер.
    • https://*.webim.ru/l/v/m/history 443 (GET) - используется для получения истории чата из базы данных.

    Для отправки push-уведомлений должны быть открыты следующие порты:

    • FCM: 5228-5230 TCP, см. https://firebase.google.com/docs/cloud-messaging/concept-options
    • APNs: 443, 2197, 5223 TCP, см. https://support.apple.com/en-us/HT203609

    Если чат размещён на серверах заказчика, то домен должен быть изменен на их собственный.

  4. Для того, чтобы после завершения чата пользователь мог поставить оценку работы оператора, необходимо описать соответствующий механизм в приложении. SDK не реализует механизм оценки, а получает её от приложения клиента.
  5. Включены и настроены push-уведомления (опционально). Подробнее параметры push-уведомлений и примеры можно посмотреть в статье Push-уведомления.
  6. Для начала чата может вызываться метод startChat(). Если метод не будет вызван, чат будет начат после первого сообщения посетителя.