Uploaded by ttbang

курсовая Программирование API готовая

advertisement
Содержание
Введение………………………………………………………………………….3
Глава 1. Шифрование данных
1.1 Шифрование в популярных мессенджерах……………………………….....4
1.2 Варианты подключения API………………………………………………….7
1.3 Самостоятельное подключение……………………………………………..11
Глава 2. Механизмы работы API в мессенджерах
2.1 Безопасность мессенджера WhatsApp……………………………………...15
2.2 Интеграция WhatsApp в Битрикс24………………………………………..17
Заключение……………………………………………………………………….22
Список использованной литературы…………………………………………...24
Введение
Общение является основной частью нашей жизни. С появлением
систем мгновенного обмена сообщениями (англ. Instant messaging, IM)
коммуникация между людьми приобрела новый характер. Стало возможным
«живое» общение с собеседником, который находится в противоположной
точке земного шара.
Современные клиенты систем мгновенного обмена сообщениями,
которые называются мессенджерами, использует свой центральный сервер,
на котором хранится вся история переписки каждого из пользователей.
Таким образом, лица, имеющие доступ к данным сервера, могут изучить
содержимое переписки. Иногда возникает необходимости в полной
конфиденциальности беседы и в этом случае приходится использовать
сквозное шифрование (End-to-End Encryption, E2EE) - способ передачи
данных, когда доступ к сообщениям имеют исключительно пользователи,
задействованные в общении.
Whatsapp - отличная возможность для бизнеса. Среди мессенджеров
Whatsapp самый крупный: по охвату он обгоняет и Viber, и Telegram.
Российская аудитория Whatsapp составляет 24,9 млн. В 2018 году появилась
версия приложения для компаний - Whatsapp Business, а сейчас аудитория
этой версии - больше 5 млн компаний.
У
мессенджера
невероятная
статистика
открываемости: 98%
сообщений мобильных сообщений открывают и читают, 90% из них - в
первые три секунды после получения.
В 2018 г. появился появился Whatsapp Business API, который дал
надежду на официальную интеграцию с этим мессенджером. Но прошел уже
год, а онлайн-чаты и прочие сервисы для коммуникации не спешат
хвастаться интеграцией. Whatsapp отчаянно защищает свою среду от спама и
борется с теми, кто нарушает правила - вплоть до суда.
3
Глава 1. Шифрование данных
1.1 Шифрование в популярных мессенджерах
Аббревиатура API расшифровывается как «Application Programming
Interface»
(интерфейс
программирования
приложений,
программный
интерфейс приложения). Большинство крупных компаний на определённом
этапе разрабатывают API для клиентов или для внутреннего использования.
Facebook Messenger - официальный мессенджер от разработчиков
крупнейшей в мире социальной сети Facebook. Существуют версии для
персональных
компьютеров
и
мобильных
устройств.
Приложение
интегрировано с системой обмена сообщениями на основном сайте Facebook
(Facebook Chat) и построено на базе открытого протокола MQTT. Данный
мессенджер позволяет обмениваться файлами и фотографиями. К текстовым
сообщениям можно добавлять смайлики и стикеры. Мобильная версия
мессенджера предоставляет голосовую и видеосвязь, а также возможность
передавать геометки.
С июля 2016 года Facebook на своём новостном портале сообщил о
запуске тестирования сквозного (End-to-End) шифрования с секретными
чатами. Теперь появилась возможность создавать секретный диалог,
содержимое которого доступно исключительно для создателя диалога и его
собеседника - пользователя, приглашённого в секретный чат. Также доступна
возможность задавать таймер - после истечения заданного времени
сообщения удаляются из беседы. Сквозное шифрование в секретных чатах
основано на базе протокола Signal, разработанного некоммерческой
организацией разработчиков открытого программного обеспечения «Open
Whisper Systems».
WhatsApp - бесплатный частный коммерческий кроссплатформенный
мессенджер с поддержкой голосовой связи. Позволяет пересылать текстовые
сообщения, изображения, видео и аудио. Также существуют версии для
4
персональных компьютеров под управлением ОС Windows и мобильных
устройств под управлением ОС Android, iOS, Windows Phone, BlackBerry,
Nokia
Symbian.
WhatsApp
использует
модифицированный
протокол
Extensible Messaging and Presence Protocol (XMPP, ранее известный как
Jabber).
С апреля 2016 года с выходом обновления версии 2.16.12 в WhatsApp
появилось сквозное шифрование (End-to-End) на базе протокола Signal.
Шифрование распространяется на все типы сообщений: текст, фото, видео и
голосовые сообщения. Шифрование также доступно в групповых чатах. В
реализации используются алгоритмы ECDH на Curve25519, AES-256, AESGCM, HMAC-SHA256, HDKF.
Viber - один из популярнейших мессенджеров, поддерживающих
голосовую и видеосвязь. Работает на платформах Android, BlackBerry, iOS,
Symbian, Windows Phone, Bada и компьютерах под управлением Windows, OS
X и Ubuntu. Позволяет отправлять текстовые сообщения со стикерами, а
также нарисованные прямо в приложении картинки. Также в мессенджере
есть групповые и публичные тематические чаты.
Начиная с версии 6.0, разработчики Viber внедрили в свой сервис
сквозное шифрование. Таким образом, все сообщения, фотографии, видео,
телефонные и видеовызовы будут зашифрованы с момента отправки с одного
устройства до момента их получения адресатом. Как заявляют разработчики,
ключ, необходимый для расшифровки данных, доступен только на
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
устройстве, используемом для отправки сообщения, и на устройстве,
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
используемом для приёма сообщения. Таким образом, никто другой не
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
может расшифровать передаваемые данные. Групповые чаты также
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
шифруются при условии, что все участники чата имеют версию мессенджера
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
6.0 или старше .
ᡃ
Telegram
-
ᡃ
бесплатный
ᡃ
кроссплатформенный
мессенджер,
ᡃ
ᡃ
позволяющий обмениваться текстовыми сообщениями со смайликами и
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
стикерами, голосовыми сообщениями, а также различным медиаконтентом.
5
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
Поддерживает групповые чаты и публичные каналы. Сервис ориентирован
ᡃ
ᡃ
на
ᡃ
приватность
мессенджер
-
ᡃ
зашифрованы.
настройках
ᡃ
ᡃ
гарантирует,
ᡃ
В
ᡃ
ᡃ
что
ᡃ
безопасности
ᡃ
ᡃ
данные
доступна
ᡃ
надёжно
ᡃ
ᡃ
возможность
ᡃ
ᡃ
«самоликвидации» аккаунта в случае длительного отсутствия пользователя в
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
сети.
ᡃ
Для мессенджера был создан протокол MTProto, предполагающий
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
использование нескольких протоколов шифрования. При авторизации и
ᡃ
ᡃ
аутентификации
ᡃ
ᡃ
используются
ᡃ
ᡃ
алгоритмы
ᡃ
RSA-2048,
ᡃ
для
DH-2048
ᡃ
ᡃ
шифрования, при передаче сообщений протокола в сеть они шифруются AES
ᡃ
ᡃ
с
ключом,
ᡃ
известным
ᡃ
ᡃ
клиенту
ᡃ
ᡃ
и
ᡃ
ᡃ
серверу.
Также
ᡃ
применяются
ᡃ
ᡃ
криптографические хеш-алгоритмы SHA-1 и MD5.
ᡃ
ᡃ
ᡃ
ᡃ
С 8 октября 2013 года добавлена функциональность секретных чатов, в
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
которых реализуется сквозное шифрование с применением алгоритма AESᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
256 в режиме IGE для пересылаемых сообщений. В отличие от Viber, в
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
Telegram секретные чаты доступны для двух пользователей. Как и в Facebook
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
Messenger, в секретном чате Telegram есть возможность задания таймера.
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
Спустя указанное время прочитанное сообщение будет удалено на
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
устройстве пользователя.
ᡃ
ᡃ
qTox - свободный кроссплатформенный мессенджер, реализованный на
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
базе протокола Tox. Позволяет осуществлять текстовую, голосовую,
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
видеосвязь и передачу файлов. Доступен режим конференции (группы).
ᡃ
ᡃ
Данный
ᡃ
ᡃ
мессенджер
ᡃ
ᡃ
отличается
ᡃ
от
ᡃ
ᡃ
ранее
ᡃ
рассмотренных
ᡃ
тем,
ᡃ
что
ᡃ
регистрация пользователей на основном сервере не требуется. После
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
установки qTox автоматически создаётся пара ключей - публичный и
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
секретный. Публичный ключ служит как уникальный идентификатор для
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
поиска собеседника. Секретный ключ хранится только у владельца и
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
подтверждает его подлинность, не раскрывая персональные данные. Поиск
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
собеседников происходит через DHT. Изначально вся переписка в qTox
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
защищена с использованием сквозного шифрования.
ᡃ
ᡃ
ᡃ
ᡃ
6
ᡃ
ᡃ
Kate Mobile - неофициальный мобильный клиент социальной сети
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
«ВКонтакте». Предоставляет все возможности веб-версии ВКонтакте для
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ведения переписки - обмен текстовой информацией со смайликами и
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
стикерами, голосовыми сообщениями и другим медиаконтентом, включая
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
файлы допустимых форматов. Kate Mobile является тонким клиентом,
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
использующим открытое API, которое предоставляется разработчиками
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ВКонтакте.
ᡃ
В социальной сети «ВКонтакте» отсутствует шифрование переписки,
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
поэтому она хранится на серверах сети в открытом виде и доступна для
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
прочтения третьим лицам, имеющим доступ к серверам.
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
1.2 Варианты подключения API
ᡃ
ᡃ
WhatsApp Business API представляет собой программное решение, где
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
клиент получает локальный API для отправки и получения сообщений. Этот
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
процесс можно интегрировать с внутренними системами компании – CRM,
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ERP, сервисами для обслуживания клиентов.
ᡃ
ᡃ
ᡃ
ᡃ
Вот что вам потребуется для того, чтобы зарегистрировать аккаунт.
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
Номер телефона, на который вы зарегистрируете аккаунт. Это может
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
быть городской или мобильный номер. Если регистрируете на мобильный, то
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
он должен быть либо новым, либо не быть активным в официальном
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
приложении WhatsApp в течение последних шести месяцев.
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
Действующий аккаунт компании в Facebook business manager.
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
Логотип, оформление бэкграунда и краткая информацию о компании,
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
которую вы разместите в профиле.
ᡃ
ᡃ
ᡃ
Шаблоны HSM-сообщений, которые вы будете отправлять клиентам.
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
C компаниями, чей ежемесячный объем трафика – не менее 500 тысяч
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
сообщений, WhatsApp готов работать как через провайдера, так и напрямую.
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
Для них описаны шаги по самостоятельному созданию аккаунта с упором на
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
технологические особенности настройки и развертывания решения.
7
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
В этом случае компания берет на себя:
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
-бизнес-процесс: оформление заявки, работу с приложение Facebook
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
business manager, передачу шаблонов на согласование;
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
-техническую сторону работы: разворачивает облачное решение или
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
использует приложение Facebook business manager, интегрируется с
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
WhatsApp с учетом требований к сценариям рассылок и коммуникации с
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
клиентами.
ᡃ
Для компаний с меньшими объемами рекомендовано подключение
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
через провайдеров. Модерация заявок, шаблонов сообщений и техническая
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
настройка решения ложится на партнера. Клиенту остается только заполнить
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
нужные документы, прописать шаблоны и подключиться по API к
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
провайдеру решения.
ᡃ
ᡃ
Бизнес-шаги для подключения WhatsApp Business API
ᡃ
ᡃ
ᡃ
ᡃ
Самостоятельно
Через
ᡃ
провайдера
ᡃ
Подача
ᡃ
на Через интерфейс Facebook
заявки
ᡃ
ᡃ
открытие
ᡃ
ᡃ
заявку
messenger.
ᡃ
ᡃ
Заполняете
ᡃ
аккаунта Отправляете в
отправляете
простую
провайдеру.
ᡃ
ᡃ
WhatsApp
ᡃ
форму
ᡃ
ᡃ
ᡃ
заявки
с
ᡃ
указанием
ᡃ
названия
ᡃ
ᡃ
компании, региона, типа
ᡃ
ᡃ
бизнеса
ᡃ
ᡃ
и
другими
ᡃ
деталями.
WhatsApp
ᡃ
ᡃ
самостоятельно
ᡃ
принимает решение об
ᡃ
ᡃ
открытии
аккаунта
ᡃ
может
ᡃ
ᡃ
отказать
ᡃ
и
без
объяснения причин. При
ᡃ
ᡃ
8
и
необходимости запросит
ᡃ
ᡃ
официальные документы.
ᡃ
ᡃ
Правила по работе с Документ
ᡃ
аккаунтом Если
ᡃ
ᡃ
подписи Провайдер
ᡃ
ᡃ
ваша подгружается в ваш аккаунт отправляет
ᡃ
заявка
для
ᡃ
ᡃ
ᡃ
одобрена,
ᡃ
ᡃ
вы в Facebook Business manager. вам
ᡃ
подписываете
ᡃ
ᡃ
ᡃ
форму
ᡃ
ᡃ
правила
уведомления
WhatsApp по работе с
для подписи.
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
аккаунтом
ᡃ
THE
ᡃ
WHATSAPP
BUSINESS
ᡃ
ᡃ
SOLUTION TERMS.
ᡃ
ᡃ
Подтверждение бизнес- В интерфейсе FB Business Вы
ᡃ
ᡃ
ᡃ
аккаунта компании
ᡃ
business в
ᡃ
можете
ᡃ
в manager нужно будет зайти передать
ᡃ
Facebook
ᡃ
ᡃ
и
ᡃ
ᡃ
вашей права
ᡃ
компании
ᡃ
ᡃ
настройки
ᡃ
manager
ᡃ
ᡃ
ᡃ
по
запросить управлению
ᡃ
ᡃ
верификацию профиля.
ᡃ
ᡃ
вашим
ᡃ
аккаунтом
ᡃ
провайдеру.
ᡃ
Заполняете самостоятельно Отправляете
Заполнение
ᡃ
ᡃ
ᡃ
о через интерфейс Facebook данные
информации
ᡃ
ᡃ
ᡃ
ᡃ
компании, которая будет manager.
ᡃ
ᡃ
отражаться
ᡃ
в
ᡃ
ᡃ
вашем
ᡃ
ᡃ
точное
написание
ᡃ
ᡃ
аккаунта длиной до 20
ᡃ
символов,
ᡃ
можно
на
ᡃ
кириллице;
ᡃ
краткое
описание
ᡃ
компании
ᡃ
ᡃ
на
ᡃ
провайдеру.
ᡃ
профиле:
ᡃ
ᡃ
150-200
ᡃ
символов;
ᡃ
9
номер телефона, который
ᡃ
ᡃ
будет
ᡃ
привязан
ᡃ
к
ᡃ
аккаунту
ᡃ
WhatsApp
c
страны
и
ᡃ
префиксом
ᡃ
города,
ᡃ
он
ᡃ
будет
ᡃ
отображаться в бизнесᡃ
ᡃ
аккаунте
WhatsApp,
ᡃ
можно
использовать
ᡃ
ᡃ
городской номер (8-800
ᡃ
ᡃ
ᡃ
нельзя);
ᡃ
физический
адрес
ᡃ
ᡃ
компании (для страницы
ᡃ
ᡃ
ᡃ
«О компании»);
ᡃ
компании
URL-адрес
ᡃ
(для
ᡃ
ᡃ
страницы
«О
ᡃ
компании»);
ᡃ
еmail-адрес
компании
ᡃ
(для
ᡃ
ᡃ
страницы
«О
ᡃ
компании»);
ᡃ
логотип
компании
(PNG/JPEG,
минимум
ᡃ
ᡃ
ᡃ
ᡃ
400x400px).
ᡃ
Настройка
кредитной Подробное описание шагов n/a
линии
WhatsApp по
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
открытию
подтверждению
Business
кредитной
ᡃ
ᡃ
и
ᡃ
ᡃ
ᡃ
лини доступно в гайдах.
ᡃ
Добавление
ᡃ
телефона
ᡃ
подтверждение
ᡃ
ᡃ
ᡃ
номера Настройка номера телефона Номер
ᡃ
ᡃ
ᡃ
ᡃ
и производится
телефона
ᡃ
ᡃ
из интерфейса Facebook
ᡃ
10
ᡃ
настраивает
ᡃ
Для подтверждения провайдер.
BM.
ᡃ
номера
ᡃ
будет
ᡃ
нужен WhatsApp
ᡃ
ᡃ
специальный
ᡃ
код
ᡃ
– сообщает
ᡃ
звонит
WhatsApp
ᡃ
на время,
ᡃ
в
ᡃ
указанный номер и диктует которое
ᡃ
ᡃ
ᡃ
ᡃ
код подтверждения, поэтому будет
ᡃ
ᡃ
ᡃ
на время этих операций вам совершен
ᡃ
ᡃ
нужно
ᡃ
ᡃ
будет
ᡃ
отключить звонок
ᡃ
ᡃ
с
ᡃ
кодом.
IVR-меню.
ᡃ
ᡃ
1.3 Самостоятельное подключение
ᡃ
ᡃ
Сначала разворачиваете WhatsApp Business API Client через Docker или
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
в облачном решении AWS Amazon. У WhatsApp есть гайд по настройке
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
клиента для обоих вариантов
ᡃ
ᡃ
ᡃ
Альтернативное
решение:
ᡃ
настройки
ᡃ
можно
ᡃ
также
ᡃ
провести
ᡃ
ᡃ
через Business Manager Facebook. Для этого вам придется создать аккаунт
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
компании в Facebook, зарегистрировать его в Facebook business manager и
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
импортировать. Описание процесса можно найти здесь.
ᡃ
ᡃ
После
ᡃ
установки
ᡃ
ᡃ
ᡃ
клиента
ᡃ
ᡃ
нужно
пройти
ᡃ
аутентификацию
ᡃ
ᡃ
и
регистрацию. Для обоих действий нужен сертификат, который вы получите
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
после верификации профиля и номера телефона.
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
Сертификат можно будет скачать в facebook business manager, следуя
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
соответствующей инструкции.
ᡃ
Затем вы настраиваете и тестируете решение. На странице с описанием
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
самых важных шагов по настройке аккаунта, также приведены параметры и
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
тестирование.
ᡃ
Через провайдера
ᡃ
ᡃ
11
ᡃ
ᡃ
Если интеграцией занимается провайдер, то все перечисленные выше
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
процедуры он выполняет сам, а вам дает удобное и функциональное API для
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
подключения.
ᡃ
Помимо
интеграции
ᡃ
канала,
ᡃ
провайдер
ᡃ
отвечает
ᡃ
за
ᡃ
логику
ᡃ
взаимодействия с CRM и другими бэкенд-системами, настраивает каскадные
ᡃ
ᡃ
рассылки,
ᡃ
консультирует
ᡃ
по
ᡃ
ᡃ
вопросам
ᡃ
подготовки
ᡃ
шаблонов
ᡃ
HSM-
ᡃ
ᡃ
сообщений, обработки входящего трафика и сбора базы клиентов.
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
Как пользоваться каналом
ᡃ
ᡃ
Вне зависимости от того, как вы подключили аккаунт, пора переходить
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
к самой важной части работы – разработке сценариев диалогов и
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
взаимодействия с клиентами.
ᡃ
ᡃ
Общие шаги для работы с трафиком:
ᡃ
ᡃ
ᡃ
ᡃ
-настройте интеграцию c CRM-системой, чтобы персонализировать
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
общение с клиентами и отслеживать эффективность коммуникаций,
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
-встройте чат-бота для автоматизации,
ᡃ
ᡃ
ᡃ
-учтите, что для диалога с клиентом может понадобиться оператор, а не
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
чат-бот. Поэтому заранее продумайте механику переключения диалога на
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
оператора или звонок в колл-центр.
ᡃ
ᡃ
ᡃ
Работа с входящим трафиком
ᡃ
ᡃ
ᡃ
Бизнес в большей степени озабочен созданием сценариев для HSM
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
(инициирующих сообщений) и обходит вниманием работу со входящими
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
обращениями. Это упущение.
ᡃ
ᡃ
Входящий трафик – это:
ᡃ
ᡃ
ᡃ
-лиды, которые вы конвертируете в продажу,
ᡃ
ᡃ
ᡃ
ᡃ
-наиболее лояльные и открытые к новому опыту клиенты,
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
-ваш имидж – образ компании, которая становится пионером в
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
использовании новых инструментов.
ᡃ
ᡃ
Главная
ᡃ
ᡃ
задача
ᡃ
–
сделать
ᡃ
исключительной.
ᡃ
12
работу
ᡃ
с
входящим
ᡃ
трафиком
ᡃ
Если вы уже используете чат-ботов, запустить WA Business будет
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
проще. На первом этапе мы советуем использовать существующие диалоги с
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
поправками на специфику канала и загружать те же самые сценарии в WA
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
Business.
ᡃ
Если у вас еще нет чат-бота, но вы общаетесь с клиентами через чатᡃ
ᡃ
ᡃ
ᡃ
ᡃ
виджет на сайте, по электронной почте и с помощью колл-центра,
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
то проанализируйте диалоги, выделите среди них частотные запросы,
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
которые удобно обрабатывать в мессенджере, и разработайте сценарии для
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
чат-ботов.
ᡃ
Если внутренней экспертизы по разработке чат-ботов у вас нет,
ᡃ
ᡃ
советуем
ᡃ
сразу
ᡃ
ᡃ
обращаться
ᡃ
в
ᡃ
ᡃ
компании,
ᡃ
которые
ᡃ
профессионально
ᡃ
ᡃ
занимаются такими решениями, и помогут вам в первую очередь с
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
проработкой сценариев, а не только с программированием бота.
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
На основе сценариев подготовьте удобное и понятное меню, чтобы
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
клиенту стало понятно, с какими запросами он может обратиться в
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
официальный WhatsApp-канал.
ᡃ
ᡃ
Исходящий трафик
ᡃ
ᡃ
В первую очередь стоит создать шаблоны исходящих сообщений для
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
интерактивных диалогов с клиентами – утверждение или перенос сроков
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
доставки заказа, подтверждение регистрации аккаунта, списание бонусов и
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
другие действия.
ᡃ
ᡃ
Так как все исходящие сообщения после ответа пользователя
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
бесплатны и не требуют утверждения в WhatsApp, мы рекомендуем
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
создавать первое сообщение таким, чтобы оно побуждало клиента к ответу.
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
Это даст вам возможность развить диалог – предложить дополнительные
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
услуги, регистрацию в программе лояльности, подписки на акции и
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
спецпредложения.
ᡃ
Стремитесь персонализировать промо, которые отправляете после
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ответа клиента. На первом этапе можно адаптировать механики вовлечения
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
клиентов, которые «зашиты» в вашей CRM-системе к новому каналу.
13
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
Получение согласий от клиентов
ᡃ
ᡃ
ᡃ
После того как вы настроите решение и подготовите сценарии
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
диалогов и шаблоны HSM-сообщений, займитесь формированием базы.
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
WhastApp в обязательном порядке требует получение согласий на отправку
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
сообщений пользователям в приложении.
ᡃ
ᡃ
ᡃ
Есть требования:
ᡃ
ᡃ
формулировка должна быть четкой – пользователь должен знать, какая
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
информация будет передаваться и что она будет отправлена через WhatsApp;
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
согласие предполагает действие со стороны пользователя – он должен
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
проставить галочку или заполнить номер телефона.
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
Сроки
Приготовьтесь к тому, что процесс запуска канала может занять до
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
двух месяцев. Например, наш аккаунт WhatsApp согласовал только со
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
второго раза, окончательного решения мы ждали три недели.
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
Нужно учитывать, что решение относительно новое и не обкатанное –
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
интеграция может затянуться в том числе из-за внутренних процессов в
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
WhatsApp. Так, с середины июля до начала августа в приложении нельзя
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
было получить тестовый доступ, так как велись работы над API приложения.
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
Чтобы ускорить процесс, вы можете сразу после одобрения вашей
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
заявки на бизнес-аккаунт приступить к разработке сценариев, созданию
ᡃ
ᡃ
ᡃ
ᡃ
HSM-диалогов и формированию базы.
ᡃ
ᡃ
ᡃ
14
ᡃ
ᡃ
Глава 2. Механизмы работы API в мессенджерах
ᡃ
ᡃ
ᡃ
ᡃ
2.1 Безопасность мессенджера WhatsApp
ᡃ
ᡃ
ᡃ
Мир, кажется, шокирован новостью о том, что WhatsApp превратил
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
любой телефон в следящее устройство. Всё на вашем телефоне, включая
ᡃ
ᡃ
ᡃ
фотографии,
ᡃ
ᡃ
электронные
ᡃ
письма
ᡃ
злоумышленникам только
потому,
ᡃ
и
ᡃ
что
ᡃ
ᡃ
ᡃ
тексты, было
доступно
ᡃ
у
вас
установлен
WhatsApp.
ᡃ
ᡃ
Однако эта новость меня не удивила. В прошлом году WhatsApp пришлось
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
признать очень похожую проблему - хакер мог получить доступ ко всем
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
данным вашего телефона через один видеозвонок.
ᡃ
ᡃ
ᡃ
Каждый раз, когда WhatsApp исправляет критическую уязвимость в
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
своём приложении, на её месте появляется новая. Все вопросы безопасности
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
хорошо подходят для слежки, они выглядят и работают как бэкдоры.
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
В отличие от Telegram, WhatsApp не открывает исходный код, поэтому
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
исследователи безопасности не могут легко проверить, есть ли там бэкдоры.
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
WhatsApp не только не публикует код, они делают прямо противоположное:
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
WhatsApp специально обфусцирует бинарные файлы своих приложений,
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
чтобы никто не мог их тщательно изучить.
ᡃ
ᡃ
ᡃ
ᡃ
Возможно, WhatsApp и её материнская компания Facebook даже
ᡃ
обязаны
ᡃ
ᡃ
ᡃ
реализовать
бэкдоры -
ᡃ
ᡃ
ᡃ
через
ᡃ
ᡃ
секретные
ᡃ
ᡃ
процессы,
ᡃ
такие
ᡃ
как секретные приказы ФБР. Нелегко запустить безопасный мессенджер,
ᡃ
ᡃ
ᡃ
ᡃ
находясь в США. За неделю, проведённую нашей командой в США в 2016
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
15
ᡃ
ᡃ
году, к нам трижды пытались проникнуть агенты ФБР. Представьте, что
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
произойдёт с американской компанией за 10 лет работы в такой среде.
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
Я понимаю, что силовые структуры оправдывают установку бэкдоров
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
антитеррористическими усилиями. Проблема в том, что такие бэкдоры могут
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
также использоваться преступниками и авторитарными правительствами.
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
Неудивительно, что диктаторы, похоже, любят WhatsApp. Отсутствие
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
безопасности позволяет им шпионить за своими гражданами, поэтому
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
WhatsApp не блокируют в таких странах.
ᡃ
ᡃ
ᡃ
ᡃ
Тогда, в 2012 году, WhatsApp все ещё передавал сообщения открытым
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
текстом. Это безумие. Не только правительства или хакеры, но и мобильные
ᡃ
ᡃ
провайдеры
ᡃ
и
ᡃ
ᡃ
ᡃ
администраторы
ᡃ
WiFi имели доступ ко
ᡃ
всем
ᡃ
текстам
ᡃ
ᡃ
WhatsApp.
ᡃ
Позже WhatsApp добавил некоторое шифрование, которое быстро
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
оказалось маркетинговой уловкой: ключ для расшифровки сообщений был
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
доступен, по крайней мере, нескольким правительствам, включая Россию.
ᡃ
ᡃ
ᡃ
Затем, основатели WhatsApp продали свою компанию Facebook и заявили,
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
что у них «конфиденциальность встроена в ДНК». Если это правда, то это,
ᡃ
ᡃ
ᡃ
наверное, спящий или рецессивный ген.
ᡃ
ᡃ
ᡃ
ᡃ
Три года назад WhatsApp объявил, что они внедрили сквозное
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
шифрование, поэтому «никакая третья сторона не может получить доступ к
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
сообщениям». Это совпало с агрессивным призывом ко всем пользователям
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
создать резервную копию своих чатов в облаке. При этом WhatsApp не
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
сказал пользователям, что при резервном копировании сообщения больше не
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
защищены сквозным шифрованием и могут быть доступны хакерам и
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
правоохранительным органам. Блестящий маркетинг, в результате которого
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
некоторые наивные люди теперь отбывают тюремный срок.
ᡃ
ᡃ
Тех,
ᡃ
ᡃ
кто
не
ᡃ
поддался
на
ᡃ
постоянные
ᡃ
всплывающие
ᡃ
окна,
ᡃ
рекомендующие создавать резервные копии своих чатов, всё ещё можно
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
отследить с помощью ряда трюков - от доступа к резервным копиям
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
контактов до незаметных изменений ключа шифрования. Метаданные,
16
ᡃ
ᡃ
генерируемые пользователями WhatsApp - логи, описывающие, кто с кем и
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
когда общается, - просачиваются во все агентства в больших объёмах через
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
материнскую компанию. Кроме того, вы получаете набор критических
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
уязвимостей, сменяющих друг друга.
ᡃ
ᡃ
ᡃ
ᡃ
У WhatsApp стабильная и последовательная история - от нулевого
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
шифрования при создании до нынешних уязвимостей, странно подходящих
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
для целей наблюдения. Оглядываясь назад, за их десятилетнюю историю не
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
было ни одного дня, когда этот сервис был безопасным. Вот почему я не
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
думаю, что простое обновление мобильного приложения WhatsApp сделает
ᡃ
ᡃ
его
ᡃ
безопасным.
ᡃ
Чтобы
ᡃ
ᡃ
стать
ᡃ
ᡃ
сервисом,
ᡃ
ᡃ
ориентированным
ᡃ
на
ᡃ
конфиденциальность, WhatsApp должен рискнуть потерей целых рынков и
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
столкнуться с властями в своей стране. Они, кажется, не готовы к этому.
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
В прошлом году основатели WhatsApp покинули компанию из-за
ᡃ
ᡃ
ᡃ
ᡃ
опасений за конфиденциальность пользователей. Они определённо связаны
ᡃ
ᡃ
либо секретными приказами, либо NDA, поэтому не могут публично
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
обсуждать бэкдоры, не рискуя потерять своё состояние и свободу. Однако
ᡃ
ᡃ
они
ᡃ
смогли
ᡃ
признать,
ᡃ
ᡃ
что «продали
ᡃ
ᡃ
ᡃ
ᡃ
конфиденциальность
своих
пользователей».
2.2 Интеграция WhatsApp в Битрикс24
ᡃ
ᡃ
ᡃ
Изучая возможность интеграции WhatsApp в Битрикс24 посредством
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
агрегаторов мессенджеров, мы обнаружили, что идеальным способом такой
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
интеграции являлся бы механизм открытых линий. Открытые линии –
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
действительно мощный и удобный механизм. Сообщения в них приходят
ᡃ
через
ᡃ
ᡃ
ᡃ
коннекторы
ᡃ
ᡃ
(каналы
ᡃ
ᡃ
коммуникации),
ᡃ
взаимодействие Битрикса с внешними системами.
ᡃ
ᡃ
ᡃ
ᡃ
17
ᡃ
которые
ᡃ
и
реализуют
ᡃ
Рис.1 Коннекторы открытых линий в Битрикс24
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
К сожалению, документации по данной теме недостаточно, и нам не
ᡃ
удалось
ᡃ
найти
ᡃ
ᡃ
возможность
ᡃ
ᡃ
создания
ᡃ
и
ᡃ
ᡃ
работы
с
ᡃ
собственными
ᡃ
коннекторами открытых линий в текущем REST-API Битрикс. Наиболее
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
близкой альтернативой является использование чат-ботов. REST-API
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
Битрикс24 прекрасно с ними работает, поэтому мы решили реализовать
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
общение с внешним агрегатором мессенджеров через закрытые чаты и чат
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
бота.
ᡃ
Создаем новое приложение Битрикс24. В требуемых scopes выбираем
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
messageservice, crm, imbot, im, imopenlines, user, disk. Точка входа в
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
приложении реализует маршрутизацию запросов к нему. Первым делом
ᡃ
ᡃ
создаем
ᡃ
интерфейс,
ᡃ
ᡃ
отображающий
ᡃ
ᡃ
ᡃ
настройки
ᡃ
ᡃ
приложения,
ᡃ
ᡃ
и
обеспечивающий их сохранение.
ᡃ
ᡃ
Рис2. Часть интерфейса формы настроек приложения.
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
Тут необходимо учитывать, что если Вы пишете приложение под
ᡃ
Маркетплейс
ᡃ
ᡃ
Битрикс24
ᡃ
ᡃ
–
необходимо
ᡃ
18
ᡃ
подумать
ᡃ
ᡃ
об
использовании
ᡃ
приложения различными доменами, и хранении настроек индивидуально для
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
каждого домена. В нашем случае было организовано хранение настроек в
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
серилизованных записях БД. При каждом обращении к приложению,
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
определялся домен, опрашивающий приложение и для него загружались
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
собственные настройки.
ᡃ
ᡃ
Следующим шагом стала регистрация чат-бота в Битрикс. На самом
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
деле, во многих случаях это будет первым шагом, но в нашем случае чат не
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
может работать функционально, пока не сделаны настройки приложения (не
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
получен токен от агрегатора мессенджеров). Поэтому мы устанавливаем чатᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
бота только после внесения верных настроек.
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
На выходе получится длинная строка с закодированными данными. Ее
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
и указываем в PERSONAL_PHOTO. События бота – маршрутизируем на
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
точку входа нашего приложения.
ᡃ
ᡃ
ᡃ
ᡃ
После этого, в контактах мессенджера Битрикс24 появится новый чат
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
бот. Чат бот будет привязан к Вашему приложению. Когда кто-либо пишет
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
чат-боту сообщение, информация об этом будет передаваться Вашему
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
приложению по событию ONIMBOTMESSAGEADD. Здесь наша задача –
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
посмотреть из какого чата это сообщение пришло, и передать его внешней
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
системе. Для получения сообщений из внешней системы – указываем в ней в
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
качестве вебхука - точку входа нашего приложения, с обязательным
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
указанием домена, чтобы понимать какому именно порталу пришло
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
сообщение.
ᡃ
Таким образом у нас теперь приложение перехватывает и входящие и
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
исходящие сообщения. Осталось отобразить их пользователям. Для этого мы
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
создали дополнительную таблицу в БД где храним информацию о диалогах
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
чат-бота. При поступлении нового входящего сообщения мы проверяем его
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
по этой таблице, и если это новый диалог – создаем в Битриксе закрытый чат
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
с помощью команды ‘im.chat.add’. Чтобы «пометить» чат, и иметь
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
возможность быстро определять что это чат для внешней системы –
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
используйте поля ENTITY_TYPE и ENTITY_ID. Например в ENTITY_TYPE
19
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
пишите «EXT_SYSTEM» а в ENTITY_ID «ид диалога во внешней системе».
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
Тогда легко можно обойтись без лишних запросов к БД.
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
В чат приглашаем специального пользователя, участвующего во всех
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
диалогах (нужно для того, чтобы диалоги не оказались «брошенными», если
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
из них выйдет пользователь), чат бота, и пользователя который будет
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
общаться в этом диалоге.
ᡃ
ᡃ
ᡃ
Далее общение происходит в рамках чата, чат-бот перехватывает
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
сообщения пользователя и передает их в приложение, которое передает их в
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
агрегатор. Агрегатор отправляет сообщение в WhatsApp или в другой
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
мессенджер клиенту. При поступлении ответа – передает его назад
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
приложению, а приложение доводит его до пользователя через чат-бота.
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
Каждому клиенту соответсвует свой диалог.
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
Важным вопросом в любом приложении для Битрикс24 является
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
вопрос хранения авторизации. Мы в нашем случае решили его так: При
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
установке приложения сохраняем авторизацию пользователя, установившего
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
приложение в базе данных. Обычно это кто-то обладающий высоким
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
уровнем доступа. В авторизации хранится текущий токен и токен для
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
обновления авторизации. Текущий токен живет очень не долго. Если запрос
ᡃ
к
ᡃ
REST-API
ᡃ
ᡃ
Битрикс24
ᡃ
ᡃ
ᡃ
возвращает
ᡃ
ᡃ
ошибку
ᡃ
ᡃ
ᡃ
‘expired_token’
ᡃ
ᡃ
или
‘invalid_token’ - обновляем токен с помощью токена для обновления
ᡃ
ᡃ
ᡃ
ᡃ
авторизации:
ᡃ
1 $auth=array();
20
ᡃ
ᡃ
2 $url="https://";
3 $url.=$this->DOMAIN."/oauth/token/?grant_type=refresh_token";
4 $url.="&client_id=".$this->CLIENT_ID;
5 $url.="&client_secret=".$this->CLIENT_SECRET;
6 if($this->CONFIG['AUTH']['REFRESH_TOKEN'])
7 $url.="&refresh_token=".
8 $this->CONFIG['AUTH']['REFRESH_TOKEN'];
9 if($this->CONFIG['AUTH']['refresh_token']) $url.="&refresh_token=".
ᡃ
ᡃ
1 $this->CONFIG['AUTH']['refresh_token'];
1
1
Как видите, данный код принудительно вызывает страницу OAuth
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
авторизации и передает ей код для обновления авторизации. Страница
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
возвращает новые параметры авторизации. Их сохраняем и повторяем запрос
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
с новыми параметрами авторизации.
ᡃ
ᡃ
ᡃ
Остается один нюанс – код для обновления авторизации тоже имеет
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
срок жизни. Он составляет что-то около месяца. То есть, если Ваше
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
приложение за месяц не сделает ни одного запроса в RET-API авторизация
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
будет безвозвратно потеряна. Для решения этой проблемы – мы используем
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
принудительное периодическое обновление авторизации раз в 10 дней (по
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
cron).
ᡃ
Следующий интересный момент. Когда вы работаете с curl через https –
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
необходимо задумываться о способе шифрования. Дело в том, что разные
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
сервера (например сервер агрегатора мессенджеров) могут использовать
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
разный набор доступных шифрований. При этом этот набор может не
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
совпадать с вашим набором. В таком случае curl будет выдавать ошибку и
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
работать не будет. Провести анализ доступных шифрований на удаленном
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
сервере можно с помощью вот такого сервиса:
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
https://www.ssllabs.com/ssltest/analyze.html?d=имя_сервера
21
ᡃ
Соответственно, в вашем curl вы должны использовать шифрование из
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
списка доступных на удаленном сервере.
ᡃ
ᡃ
ᡃ
ᡃ
Заключение
На сегодняшний день можно найти пару десятков платформ, где можно
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
самому создать чат-бота для WhatsApp без навыков программирования.
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
Отличаются они стоимостью, возможными интеграциями и, скорее всего,
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
стабильностью работы (все не проверял).
ᡃ
ᡃ
ᡃ
ᡃ
Все конструкторы можно разделить на 2 группы:
ᡃ
ᡃ
ᡃ
ᡃ
Мультиплатформенные конструкторы чат-ботов
ᡃ
ᡃ
ᡃ
В этих конструкторах вы сначала создаете чат-бота, а затем
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
привязываете его к любому мессендрежеру или социальной сети. К таким
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
конструкторам можно отнести Textback, Watbot, Xenioo.
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
Конструкторы, где вы можете собрать бота только для WhatsApp –
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
например Bot-kit.
ᡃ
ᡃ
По каким алгоритмам работают эти конструкторы я точно не знаю.
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
Своего бота я собирал на Xenioo и для запуска бота в WhatsApp требовалось
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
подключаться к одному из 4-х сервис провайдеров: Twilio, Apiwha,
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
Waboxapp, Messengerpeople. Своего я подключал через Apiwha, потому что
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
там был бесплатный тестовый период.
ᡃ
ᡃ
ᡃ
Как правило, все сервисы заявляют, что работают через официальное
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
API WhatsApp. Хотя, известно, что доступ к API WhatsApp выдается только
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
по запросу и далеко не каждому обратившемуся. Например, если вы решите
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
подключать своего бота созданного в Xenioo через Twilio, то вам сначала
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
придется зарегистрировать свой номер телефона в Twilio, а затем Twilio
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
отправит заявку в WhatsApp на получения доступа к Api через ваш номер
22
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
телефона. Но если подключать бота не через Тwilio, а через Apiwha или
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
ᡃ
Waboxapp, то никакие запросы отправлять не потребуется и бот запустится
мгновенно.
Список использованной литературы
1. Система мгновенного обмена сообщениями // Википедия - свободная
энциклопедия.
[Электронный
ресурс].
–
Режим
доступа: https://ru.wikipedia.org/wiki/Система_мгновенного_обмена_сообщен
иями
2. ProtonMail: Сквозное шифрование: описание и принцип работы метода //
Computer Security Software Russia. [Электронный ресурс]. – Режим
доступа: http://www.comss.ru/page.php?id=2468
3. Facebook Messenger // Википедия - свободная энциклопедия. [Электронный
ресурс]. – Режим доступа: https://ru.wikipedia.org/wiki/Facebook_Messenger
Messenger Starts Testing End-to-End Encryption with Secret Conversations //
Facebook.– Режим доступа: https://newsroom.fb.com/news/2016/07/messengerstarts-testing-end-to-end-encryption-with-secret-conversations/
4. WhatsApp // Википедия - свободная энциклопедия. [Электронный ресурс].
– Режим доступа: https://ru.wikipedia.org/wiki/WhatsApp
5. Мессенджеры 2016: самые интересные приложения для мгновенного
обмена
сообщениями
//
ITC.ua.
[Электронный
ресурс].
–
Режим
доступа: http://itc.ua/articles/messendzheryi-2016-samyie-interesnyieprilozheniya-dlya-mgnovennogo-obmena-soobshheniyami/
6. Вопросы и ответы по безопасности Viber // Viber. [Электронный ресурс]. –
Режим
доступа: https://support.viber.com/customer/ru/portal/articles/2017401-
Вопросы-и-ответы-по-безопасности-viber
23
7. Telegram (мессенджер) // Википедия - свободная энциклопедия.
[Электронный
ресурс].
–
Режим
доступа: https://ru.wikipedia.org/wiki/Telegram_(мессенджер)
8.
Clients
-
Tox
//
Tox.
[Электронный
ресурс].
–
Режим
доступа: https://tox.chat/clients.html#qtox
9. Tox // Википедия - свободная энциклопедия. [Электронный ресурс]. –
Режим доступа: https://ru.wikipedia.org/wiki/Tox
10. Kate Mobile Lite // Google Play. [Электронный ресурс]. – Режим
доступа: https://play.google.com/store/apps/details?id=com.perm.kate_new_6
11. Advanced Encryption Standard // Википедия - свободная энциклопедия.
[Электронный
ресурс].
–
доступа: https://ru.wikipedia.org/wiki/Advanced_Encryption_Standard
24
Режим
Download