Как создать чат для android

Содержание
  1. Содержание
  2. Встраиваемый чат для мобильных приложений Android
  3. Основные возможности
  4. Получить идентификатор приложения (AppID)
  5. Подготовить проект
  6. Запросить разрешение на доступ к камере и галерее
  7. Выбрать тип авторизации
  8. Как работает авторизационный сервис
  9. Инициализировать библиотеку
  10. Запустить пользовательский интерфейс чата
  11. Настроить оформление чата
  12. Методы класса ServiceDeskConfiguration.Builder
  13. Детальная настройка внешнего вида чата
  14. Уведомления о новом сообщении в чате
  15. Push-уведомления
  16. Включаем оценку сервиса
  17. Настройка меню отправки файлов в чат
  18. Описание используемых типов и методов
  19. PyrusServiceDesk
  20. registerFileChooser
  21. setPushToken
  22. start
  23. start
  24. subscribeToReplies
  25. unsubscribeFromReplies
  26. onAuthorizationFailed
  27. OnStopCallback
  28. ServiceDeskConfiguration.Builder
  29. build
  30. setAvatarForSupport
  31. setChatTitle
  32. setThemeColor
  33. setUserName
  34. setWelcomeMessage
  35. setFont
  36. setUserMessageBackgroundColor
  37. setSupportMessageBackgroundColor
  38. setUserTextColor
  39. setSupportTextColor
  40. setChatTitleColor
  41. setToolbarColor
  42. setToolbarButtonColor
  43. setBackgroundColor
  44. setAttachmentMenuBackgroundColor
  45. setAttachmentMenuTextColor
  46. setAttachmentMenuButtonColor
  47. setForceDarkAllowed
  48. setStatusBarColor
  49. NewReplySubscriber
  50. onNewReply
  51. FileChooser
  52. getIntent
  53. getLabel
  54. SetPushTokenCallback
  55. onResult
  56. Авторизационный веб-сервис
  57. The authorization web service

Содержание

Встраиваемый чат для мобильных приложений Android

Программные средства разработки (SDK) Pyrus для Android позволяют встроить удобный чат в ваше мобильное приложение. Встроенный чат помогает получать мгновенную обратную связь от пользователей вашего мобильного приложения.

Когда клиент пишет в чат, ваша служба поддержки автоматически получает тикет в Pyrus. Специалист отвечает на заявку прямо в Pyrus, а клиенту приходит пуш-уведомление на телефон и ответ в чат вашего мобильного приложения. Это позволяет специалистам поддержки оперативно решать вопросы клиентов.

Основные возможности

Вы можете встроить такой чат в приложение на базе Android. Вот пошаговая инструкция.

Получить идентификатор приложения (AppID)

Чтобы специалисты службы поддержки могли обрабатывать сообщения из чата в Pyrus, ваше приложение нужно подключить к форме, в которой ведётся работа с обращениями клиентов. Для начала работы вам понадобится аккаунт администратора в Pyrus с доступом к настройке формы, в которой обрабатываются обращения пользователей. Если у вас нет такого аккаунта, обратитесь к коллеге, у которого он есть.

Подготовить проект

В файл build.gradle добавьте:

Запросить разрешение на доступ к камере и галерее

Чтобы пользователи могли прикреплять к сообщениям фотографии из галереи на устройстве или сфотографировать что-то, модуль запрашивает соответствующие доступы.

Выбрать тип авторизации

Библиотека Pyrus Mobile Chat может работать в одном из двух режимов: с анонимной либо с внешней авторизацией.

Анонимный режим работы требует меньше затрат на внедрение. В этом случае данные чата привязаны к устройству. Пользователь на одном устройстве без использования явных логинов и паролей может писать в чат и видеть ответы операторов.

Основной недостаток анонимного режима в том, что если пользователь использует мобильное приложение на другом устройстве, то предыдущую переписку он не видит.

Если вы хотите, чтобы чат с историей переписки был доступен пользователю на разных устройствах, настройте внешнюю авторизацию. Для этого нужно реализовать веб-сервис, сообщающий системе о том, что данному пользователю разрешен доступ к чату.

Обратите внимание, что анонимная и внешняя авторизация взаимно исключают друг друга. Если вы, например, переключаете библиотеку Pyrus Mobile Chat с анонимной авторизации на внешнюю, то старая переписка в чате, сделанная с анонимной авторизацией, пользователям мобильного приложения перестаёт быть доступна.

Как работает авторизационный сервис

В режиме с внешней авторизацией решение о том, есть ли у пользователя доступ к данным чата, бэкенд Pyrus не принимает самостоятельно, а спрашивает об этом специальный авторизационный сервис, который вам необходимо реализовать. Работает это так.

1. Пользователь любым способом авторизуется в мобильном приложении и после этого получает от вашего бэкенда пару (userID, securityKey). На этом этапе библиотека Pyrus Mobile Chat и бэкенд Pyrus не участвуют.

Читайте также:  Андроид huawei ascend g630

2. При инициализации библиотеки Pyrus Mobile Chat значения userID и securityKey передаются как параметры.

3. В дальнейшем при любом запросе в бэкенд Pyrus (например, при запросе истории переписки или при отправке комментария пользователя) библиотека Pyrus Mobile Chat автоматически передаёт в бэкенд Pyrus параметры (userID, securityKey).

3.1. Перед обработкой запроса по существу бэкенд Pyrus проверяет права доступа, для этого передает пару (userID, securityKey) в ваш авторизационный веб-сервис.

3.2. Авторизационный веб-сервис в коммуникации с вашим бэкендом проверяют, являются ли параметры (userID, securityKey) подлинными и передают результат проверки обратно в бэкенд Pyrus.

3.3. Если разрешение от авторизационного сервиса получено, бэкенд Pyrus выполняет запрос: отправляет историю переписки, сохраняет комментарий пользователя и т.п.

URL авторизационного сервиса следует указать в форме, к которой подключен мобильный чат. Для этого зайдите в настройки выбранной формы и в разделе Расширения выберите Чат в мобильном приложении.

На открывшейся странице введите URL в соответствующее поле.

Инициализировать библиотеку

При старте приложения вызовите метод init() класса PyrusServiceDesk.

Параметры метода init():

Данные параметры применяются только при внешней авторизации:

Инициализация чата в анонимном режиме:

Инициализация чата в режиме внешней авторизации

Если передать параметр userId = null, то будет работать анонимная авторизация, привязанная к устройству, а не к пользователю.

Запустить пользовательский интерфейс чата

Чтобы запустить пользовательский интерфейс, вызовите метод start() класса PyrusServiceDesk:

Настроить оформление чата

Для запуска пользовательского интерфейса используйте метод start(activity, configuration). Создать и настроить объект ServiceDeskConfiguration можно с помощью класса ServiceDeskConfiguration.Builder.

Методы класса ServiceDeskConfiguration.Builder

Детальная настройка внешнего вида чата

В дополнение к описанным выше кратким настройкам внешнего вида чата вы можете с помощью объекта ServiceDeskConfiguration уточнить вид отдельных элементов интерфейса. Все представленные далее настройки использовать необязательно: если вы пропустите часть из них, сработают соответствующие краткие настройки.

Вы можете детально оформить чат с помощью следующих параметров.

Пример инициализации настроек

Java:

Уведомления о новом сообщении в чате

Вы можете настроить отправку push-уведомлений, чтобы оповещать пользователя о новых сообщениях в чате. В этом разделе описан альтернативный вариант. Он проще в реализации, но уведомления будут приходить с задержкой и вы не увидите содержимое нового комментария. Настроить push-уведомления

Чтобы получать уведомления о новых сообщениях от сотрудника поддержки в чате, реализуйте интерфейс NewReplySubscriber и передайте реализацию интерфейса в метод subscribeToReplies() класса PyrusServiceDesk.

Если вы используете библиотеку PyrusSeviceDesk на нескольких устройствах, что возможно с внешней авторизацией, то мобильному приложению полезно знать, что все новые комментарии уже прочитаны на другом устройстве. В этом случае библиотека вызовет функцию onNewReply с параметром hasUnreadComments равным false. Если чат открыт, функция не будет вызвана, даже если придут новые сообщения.

Push-уведомления

Вы можете настроить отправку push-уведомлений, чтобы пользователь узнавал, когда специалист поддержки отправит комментарий в чат. Общая схема оповещения выглядит так: специалист отвечает на обращение клиента в Pyrus, из Pyrus с помощью вебхука ответ специалиста и push-токен отправляется на ваш сервер. Затем push-сервер Google отправляет в приложение клиента push-уведомление о новом сообщении в чате.

Чтобы это работало, push-сервер Google должен знать токен, уникальный для устройства и вашего приложения. При запуске ваше приложение связывается с push-сервером Google и получает токен устройства, который записывается в Pyrus.

Чтобы подписаться на уведомления, зарегистрируйте пуш-токен с помощью вызова setPushToken(token, callback) класса PyrusServiceDesk.

Читайте также:  Android proxy on wifi

Параметры метода setPushToken(token, callback):

SetPushTokenCallback имеет метод onResult(@Nullable Exception exception), параметр exception которого при успешной регистрации будет null, в противном случае exception будет содержать сообщение об ошибке.

На стороне сервера приложения нужно реализовать вебхук, который будет получать уведомления о новых комментариях в чате. И в настройке формы добавьте его URL.

При появлении нового ответа от поддержки на этот URL будет отправляться POST-запрос со следующим содержанием:

ticket_id — номер задачи, в которую добавлен комментарий.

token — идентификатор пользователя, включающий:

comment — информация о новом комментарии:

author — информация об авторе комментария:

created_at — дата и время создания комментария.

attachments — описание приложенных файлов:

Чтобы отписаться от push-уведомлений, нужно передать null в функцию setPushToken:

Включаем оценку сервиса

В уведомлении о закрытии заявки вы можете предложить пользователю оценить качество обслуживания с помощью смайликов, соответствующих оценке от пяти до одного.

Чтобы подключить оценку, зайдите в раздел Формы в левом меню и выберите форму, в которой работает Pyrus Mobile Chat.

На странице настройки формы в списке доступных расширений нажмите значок Оценка сервиса.

Установите переключатель в положение Включено.

Настройка меню отправки файлов в чат

По умолчанию пользователь может отправлять в чат фотографии, сделанные камерой, или выбирать изображения из галереи. Чтобы дать пользователю возможность отправлять другие типы файлов (например, техническую информацию, файлы конфигурации и т. д.), используйте метод registerFileChooser() класса PyrusServiceDesk.

PyrusServiceDesk.registerFileChooser(chooser), где chooser — реализация интерфейса FileChooser. Для того, чтобы перестать использовать настроенный FileChooser, в метод нужно передать null.

Методы FileChooser:

Важно: схема отправляемого Uri должна быть «content», в противном случае комментарий с файлом добавлен не будет.

Описание используемых типов и методов

PyrusServiceDesk

Главный класс для работы со встраиваемым чатом поддержки.

Метод инициализирует встраиваемый модуль Pyrus Service Desk. Лучше всего вызывать метод в [Application.onCreate].

Примечание: это нужно сделать до вызова других публичных методов, в противном случае будет возникать IllegalStateException.

Параметры

appId Идентификатор приложения в Pyrus.
application Приложение, в которое встраивается модуль.

Параметры

userID: Cтрока ID пользователя во внешней системе. Не должен меняться у одного и того же пользователя.
securityKey: Cтрока, для аутентификации пользователя user_id во внешней системе. Может меняться у одного и того же пользователя, если внешняя система это позволяет.
onAuthorizationFailed: Вызывается, когда параметры securityKey и userID не прошли проверку валидности

registerFileChooser

Задаёт источник, который будет добавлен в меню для выбора. Пользователь может воспользоваться им, чтобы прикрепить файл к сообщению в чат. Прикрепить можно файлы, размер которых не превышает [RequestUtils.MAX_FILE_SIZE_MEGABYTES]. Сейчас максимальный размер загружаемого файла — 250 Мб.

Параметры

fileChooser Запускает интерфейс для выбора файлов. Для отключения можно передавать null.

setPushToken

Регистрирует push-токен. Обратный вызов [callback] может быть вызван в потоке, который отличается от того, в котором был вызван [setPushToken].

Параметры

callback Обратный вызов, который вызывается, когда завершена регистрация токена. Если токен успешно зарегистрирован, вызов происходит без ошибок.
token Токен для регистрации.

start

Запускает интерфейс PyrusServiceDesk в стандартной конфигурации.

Параметры

activity Запускает интерфейс PyrusServiceDesk в настроенной конфигурации.

start

Запускает интерфейс PyrusServiceDesk.

Параметры

activity Запускает интерфейс PyrusServiceDesk.
configuration Сущность [ServiceDeskConfiguration], которая используется для настройки интерфейса.

subscribeToReplies

Подписывает [subscriber] на уведомления о том, что в чате появились новые сообщения от поддержки.

unsubscribeFromReplies

Отписывает [subscriber] от оповещений о новых сообщениях от поддержки в чате.

Читайте также:  Звук сообщения андроид установить

Останавливает работу чата. Если UI на момент вызова был скрыт, то чат закроется при восстановлении UI.

onAuthorizationFailed

Вызывается, когда параметры securityKey и userID не прошли проверку валидности

OnStopCallback

Обратный вызов, который вызывается после остановки работы чата.

ServiceDeskConfiguration.Builder

Вспомогательный класс для конструирования объектов типа ServiceDeskConfiguration, описывающих внешний вид чата.

build

Создаёт объект типа [ServiceDeskConfiguration].

setAvatarForSupport

Задаёт идентификатор ресурса с изображением, которое используется в качестве аватара специалиста службы поддержки. По умолчанию используется стандартная иконка, в качестве фона — цвет, который был настроен при вызове метода PyrusServiceDesk.start(). Если цвет на задан или не настроен, цвет фона — #008C8C.

Параметры

ID Идентификатор изображения.

setChatTitle

Содержит текст для заголовка чата. По умолчанию используется «Поддержка» или «Support» в зависимости от локали.

Параметры

title Отображаемый заголовок чата.

setThemeColor

Устанавливает цвет основных элементов чата. По умолчанию: #008C8C.

Параметры

color Цвет основных элементов чата.

setUserName

Задаёт имя пользователя (клиента поддержки), которое специалист службы поддержки увидит в Pyrus. По умолчанию используется «Гость» или «Guest» в зависимости от локали. Если пользователь авторизовался в приложении, вы можете передавать имя, почту и другие его данные в этот метод, чтобы оператор поддержки понимал, с кем общается, и быстрее решил вопрос.

Параметры

userName Имя пользователя.

setWelcomeMessage

Задаёт текст для приветственного сообщения, которое пользователь увидит в чате, когда откроет его. Если текст не задан, чат будет отображаться без приветственного сообщения.

Параметры

message Приветственное сообщение.

setFont

Задаёт тип шрифта, который используется в чате.

setUserMessageBackgroundColor

Задаёт цвет фона для сообщений пользователей.

setSupportMessageBackgroundColor

Задаёт цвет фона для сообщений службы поддержки.

setUserTextColor

Задаёт цвет текста для сообщений пользователя.

setSupportTextColor

Задаёт цвет текста для сообщений службы поддержки.

setChatTitleColor

Задаёт цвет заголовка чата.

setToolbarColor

Задаёт цвет навигационной панели чата.

setToolbarButtonColor

Задаёт цвет кнопок навигационной панели.

setBackgroundColor

Задаёт цвет фона чата.

setAttachmentMenuBackgroundColor

Задаёт цвета фона меню выбора файлов.

setAttachmentMenuTextColor

Задаёт цвет текста в меню с выбором источника файлов.

setAttachmentMenuButtonColor

Задаёт цвет кнопки меню прикрепления файлов.

setForceDarkAllowed

Задаёт значение флага, позволяющего системе Android автоматически конвертировать цвета в темной теме.

setStatusBarColor

Задаёт значение флага, позволяющего системе Android автоматически конвертировать цвета в темной теме.

NewReplySubscriber

Реализация интерфейса может быть подписана на уведомления о новых сообщениях от поддержки с помощью метода subscribeToReplies() класса PyrusServiceDesk.

onNewReply

Вызывается при получении нового ответа от поддержки.

Параметры

hasUnreadComments: Передает значение true, если есть непрочитанные сообщения.
lastCommentText: Текст последнего непрочитанного сообщения. Может содержать не более 500 знаков.
lastCommentAttachmentsCount: Число файлов, приложенных к последнему непрочитанному сообщению.
lastCommentAttachments: Список названий приложенных к сообщению файлов. Может включать не более 10 названий.
utcTime: Время создания последнего непрочитанного сообщения в формате UTC.

FileChooser

Чтобы появилась возможность прикреплять файлы к сообщениям в чат, нужно реализовать интерфейс для передачи в [PyrusServiceDesk.registerFileChooser].

getIntent

Используется для запуска настроенного меню выбора файла, когда пользователь кликает на вариант с текстом, который содержится в[getLabel].

getLabel

Текст, который отображается в меню для выбора источника файла.

SetPushTokenCallback

Обратный вызов, который вызывается когда регистрация push-токена завершена. Возврат без исключения означает, что токен успешно зарегистрирован.

onResult

Метод, который вызывается, когда регистрация push-токена завершена.

Авторизационный веб-сервис

Получает вызов HTTP POST c параметрами:

The authorization web service

Receives the command HTTP POST with the parameters:

Источник

Оцените статью