Это вторая часть серии, состоящей из нескольких частей, в которой описывается дизайн и реализация коммерчески развертываемого приложения, такого как WhatsApp, с возможностью обмена сообщениями, видео и голосовой связью в реальном времени, которое можно масштабировать до миллиардов пользователей. Если вы не читали Часть-1, мы настоятельно рекомендуем вам прочитать ее перед чтением этой части.
В Части 1 мы создали приложения для Android и iOS (далее будем называть Сейчас) и исследовали различные функции приложения, например, обмен сообщениями, голосовые и видеозвонки, групповой чат и т. Д. мы использовали бэкэнд, который уже размещен и настроен, чтобы вы могли быстро играть с приложениями, не беспокоясь о бэкэнде. Теперь в этой части мы опишем, как разместить бэкэнд на ваших серверах / инфраструктуре и получить полный контроль над пользователями, группами и т. Д.
Предпосылки
Прежде чем мы погрузимся в настройку серверной части для приложений Messenger, убедитесь, что следующие серверы работают.
- Веб-сервер с поддержкой HTTPS и PHP. В зависимости от используемого веб-сервера (apache / h2o / Lighttpd / Nginx) настройка может быть разной. В следующих примерах мы будем предполагать, что ваше имя хоста
example.com
, а код серверной части, который вы скоро загрузите, доступен по URLhttps://example.com/api.php
- Сервер MySQL
Вам также необходимо зарегистрироваться и получить ключи API для важных служб, используемых в приложении, а затем настроить серверную часть для использования этих ключей, как описано в следующем разделе.
Основные используемые службы и SDK
В Части 1 мы кратко упомянули о следующих SDK и сервисах, используемых в этом проекте. Поскольку теперь вы будете размещать серверную часть в своей инфраструктуре, вам необходимо зарегистрироваться и получить ключи API для этих сервисов.
- SDK Facebook AccountKit для проверки телефона. Account Kit прост, достаточно надежен и предлагает бесплатную проверку телефона до 100 тысяч пользователей.
- SDK Google Maps и Google Places для интеграции геолокации.
- SDK Mesibo для общения в реальном времени. Как и Account Kit и карты Google, Mesibo является лидером отрасли в области связи в реальном времени и предлагает мощные API для обмена сообщениями, звонков и т. Д.
Давайте начнем регистрацию в этих сервисах и получим ключи API.
Комплект учетной записи Facebook
Первый экран, который вы видите в приложениях Messenger, - это экран входа в систему. Экран входа в систему позволяет пользователям вводить свой номер телефона, а затем проверять его, отправляя одноразовый пароль по SMS или звонку.
Подтверждение номера телефона - дорогостоящий процесс, так как для подтверждения номера телефона требуется отправить SMS или позвонить, часто это международные номера. Однако благодаря Facebook Account Kit весь этот процесс автоматизирован и доступен бесплатно (ну, почти). Account Kit позволяет вам быстро зарегистрироваться и войти в приложение, используя только свой номер телефона или адрес электронной почты - пароль не требуется. Он надежен, прост в использовании и дает вам возможность выбрать способ регистрации в приложениях - с помощью телефона, электронной почты или, при желании, через свою учетную запись Facebook.
Чтобы использовать Account Kit, вам необходимо создать приложение и сгенерировать клиентский токен Account Kit. Весь процесс занимает менее 5 минут.
- Перейдите на страницу приложения Facebook
- Если у вас уже есть приложение, щелкните по нему. В противном случае нажмите, чтобы создать новое приложение, и перейдите к его настройкам.
- В левой части навигации вы увидите
PRODUCTS
. Если вы не видитеAccount Kit
, нажмите значок+
и добавьте «Account Kit». - Теперь вы увидите
Account Kit
подPRODUCTS
. ЩелкнитеSettings
в менюAccount Kit
. - Запишите
APP ID
иAccount Kit Client Token
Геолокация - Google Карты и Google Адреса
Приложения для обмена сообщениями позволяют вам выбрать и отправить местоположение вашим друзьям и семье. Приложения Messenger используют для этой функции Google Maps и Google Places SDK. Следовательно, вы должны добавить в проект Google Maps и Google Places API Key, чтобы он работал.
Чтобы получить инструкции по получению ключа API и его настройке, посетите
- Для Android: https://developers.google.com/maps/documentation/android-sdk/signup
- Для iOS: https://developers.google.com/maps/documentation/ios-sdk/get-api-key
Mesibo - обмен сообщениями и звонки в реальном времени
Приложения для обмена сообщениями, которые вы создали в первой части, позволяют отправлять сообщения в реальном времени, а также получать их статус в реальном времени, например, отправлено, доставлено, прочитано и т. Д. Кроме того, это также позволяет вы можете совершать высококачественные видео- и голосовые звонки между пользователями вашего приложения. Мы использовали API Mesibo для реализации этих функций.
Mesibo - это платформа для общения в чате в режиме реального времени высшего уровня, которая обеспечивает функции обмена сообщениями, голоса и видео для нескольких промышленных секторов. Он модульный, легкий и простой в интеграции, что позволяет масштабировать ваши приложения до миллиардов пользователей без какой-либо инфраструктуры.
Чтобы использовать Mesibo, вам необходимо зарегистрироваться, войти в консоль Mesibo и получить ключи API и токен приложения. После входа в систему создайте приложение и сгенерируйте токен приложения. Весь процесс занимает менее 5 минут.
Создав приложение, запишите токен приложения. Токен приложения выглядит следующим образом:
**cn9cvk6gnm15e7lrjb2k7ggggax5h90n5x7dp4sam6kwitl2hmg4cmwabet4zgdw**
Нам нужно будет настроить этот токен приложения в нашем бэкэнд-коде, чтобы бэкэнд мог использовать его для создания пользователей и групп на платформе Mesibo.
Вот и все! Теперь приступим к настройке бэкэнда.
Загрузите исходный код Backend с GitHub
Мы загрузили исходный код backend на GitHub, чтобы вы могли быстро приступить к работе. Есть несколько способов загрузить код с GitHub.
Клонировать репозиторий (рекомендуется)
Если у вас установлен git, это рекомендуемый подход, так как вы можете быстро синхронизировать и оставаться в курсе последних версий. Это также предпочтительный способ загрузки кода, если вы решите внести свой вклад в проект.
Для загрузки откройте терминал и выполните следующие команды в корневой папке вашего веб-сервера:
$ git clone
https://github.com/mesibo/messenger-app-backend
Загрузите код в виде zip-файла
Вы также можете загрузить полный исходный код серверной части в виде zip-файла. Хотя это тривиально, обратная сторона этого подхода заключается в том, что вам придется загружать полный исходный код каждый раз, когда он обновляется в репозитории.
"Скачать"
После завершения загрузки разархивируйте в корневую папку вашего веб-сервера.
Прежде чем мы настроим серверную часть, мы сначала настроим базу данных, которая будет использоваться серверной частью.
Настройка базы данных
Вам нужно будет настроить базу данных, чтобы серверная часть могла хранить различную информацию:
- Телефонный номер пользователя и токены для входа
- Группы, участники групп и администраторы групп
- Контакты пользователей для синхронизации контактов.
- Жетоны push-уведомлений Google и Apple
Серверная часть использует MySQL в качестве базы данных. Мы не будем вдаваться в подробности настройки сервера MySQL; Если вы не знакомы, в Интернете есть множество руководств. После настройки сервера MySQL создайте базу данных и учетные данные. Эти учетные данные потребуются внутреннему коду для доступа к базе данных.
Следующим шагом является создание схемы базы данных с использованием предоставленного файла SQL mysql-schema.sql
. Выполните следующее, чтобы создать схему базы данных для серверной части.
$ mysql -h <host> -u <username> -p <password> <dbname> < mysql-schema.sql
Всплывающие уведомления
Последний набор информации, который вам нужен, - это включить push-уведомления для Android и iOS. Вам понадобится следующее:
- Ключ Google FCM / GCM для push-уведомлений Android.
- Сертификат Apple VoIP и кодовая фраза.
См. Документ с push-уведомлением Google FCM и Apple, чтобы получить вышеуказанные учетные данные.
Настройка Backend
Теперь у нас есть вся информация для настройки и запуска бэкэнда на ваших собственных серверах.
Откройте config.php
в бэкэнд-коде и введите всю информацию, которую мы получили выше, а именно:
- Хост MySQL, имя базы данных, имя пользователя и пароль
- Комплект учетной записи Facebook AppID и секрет
- Ключ Google Maps
- Ключ API Mesibo и токен приложения
- Ключ Google GCM / FCM
- Сертификат Apple VoIP и кодовая фраза
Вам также необходимо указать files_path
и files_tn_path
на допустимые пути на вашем сервере, где серверная часть будет хранить изображения профиля.
Вот и все! Теперь мы готовы протестировать серверную часть!
Тестирование серверной части
Пришло время протестировать серверную часть. Откройте https://example.com/api.php
в своем браузере. Он должен выводить
{ "code": "NOOP", "result": "FAIL" }
Приведенные выше выходные данные указывают на то, что серверная часть настроена правильно. Вы можете продолжить тестирование, открыв api.php
с некоторыми параметрами. Например,
https://example.com/api.php?op=login&aktoken=test&appid=com.mesibo.mesiboapplication
это должно выглядеть следующим образом
{ "op": "login", "ts": 1555861088, "error": "BADAKTOKEN", "result": "FAIL" }
Выглядит хорошо! Следующим шагом будет обновление приложения для Android и iOS, которое мы создали в Части 1, с помощью нового бэкэнда.
Настройте приложения для использования новой серверной части
Отредактируйте следующие файлы в приложениях Messenger, которые мы создали в Части 1, чтобы использовать новый бэкэнд.
Android
- Edit
app/src/main/res/values/strings.xml
и введите идентификатор приложения Account Kit и токен клиента в поляFACEBOOK_APP_ID
иACCOUNT_KIT_CLIENT_TOKEN
соответственно. - В том же файле введите ключ карты Google в поле
GOOGLE_MAP_KEY
. - Отредактируйте
SampleApi.java
и изменитеmApiUrl
, чтобы отразить новый URL-адрес серверной части.
iOS
- Нажмите
Info.plist
и введите свой идентификатор приложения и токен клиента в поляFacebookAppID
иAccountKitClientToken
соответственно. Вам также необходимо отредактировать полеCFBundleURLSchemes
, чтобы оно отображало ваш идентификатор приложения Facebook после префиксаfb
. - В том же файле введите ключ карты Google в поле
GoogleMapKey
. - В том же файле введите новый URL-адрес серверной части в поле
MessengerApiUrl
.
Вот и все. Перекомпилируйте оба приложения и начните им пользоваться!
Теперь вы можете видеть любого нового пользователя и группы, которые вы создаете в
Mesibo console
, а также статистику.
Продолжение следует!
В этой части вы создали серверную часть для приложений Android и iOS в своей собственной инфраструктуре. В следующих статьях мы расскажем, как работает все приложение, и как его настраивать.
Подпишитесь на нас, чтобы получить уведомление, когда выйдет следующая часть этой серии.