Skip to content

Универсальное приложение информирования и оповещения

Notifications You must be signed in to change notification settings

EvgeniyKorepov/InternetAgent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Internet Agent

Универсальное приложение информирования, управления и оповещения.

Внимание - шаблон не содержит кода взаимодействия с реальным API. Вариантов Home API много и разных, использование какого то конкретного API лишь запутает пример. Вместо реальных вызовов используются программные заглушки, вы должны самостоятельно реализовать обращения к вашим устройствам и если не жалко, поделится вашим решением :-)

Ключ доступа к демонстраниционному API:

  • Для вставки из буфера обмена 7b2255524c223a2268747470733a2f2f666c696e746e65742e72752f6170692f617070686f6d652f222c22546f6b656e223a22333937313536373735633430616339346236336666323539363230303635227d
  • Этот же ключ в текстовом виде и виде QR-кода доступен тут http://internetagent.flintnet.ru/

Ключ доступа является HEX строкой JSON строки содержащей ссылку на API и токен доступа нужного пользователя, пример в файле APIKeyGenerate.php

Области применения:

  • Умный дом - информация, управление, оповещения о событиях.
  • Портал для семьи/сообщества - новости, оповещения, управление, общение.
  • Простые задачи, к примеру камеры наблюдения и оповещения о движении или смене состояния.

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

Приложение может содержать до четырех разделов, функционально они ничем не отличаются, вы просто можете разделять информацию/функционал по своему усмотрению :

  • news : к примеру новости, лента событий, пямятки и т.п.
  • info : к примеру информация, перечень состояний (устройств, вещей, дверей и т.д.), http:, tel:, mailto: ссылки для удобного быстрого вызова.
  • services : к примеру кнопки изменения состояния устройств, оборудования, функций и т.п.
  • support : к примеру лента сообщений, оповещений. Это единственная секция с дополнительным функционалом, при read_only=false вы можете показать диалог отправки сообщений на ваш сервер.

Описание шаблонных примеров:

  • Папка web - пример точки входа на вашем web-сервере.
  • Папка InternetAgentApi - пример простейшего API.
  • Файл APIKeyGenerate.php - пример генерации Токена, и Ключа доступа для приложения Интернет агент.
  • InternetAgent.sql пример структуры и демо-данных базы хранения токенов пользователей и сообщений (уведомлений)
  • Описание API отправки push уведомлений в проложение - в процессе...

При запуске приложение запрашивает с вашего сервера текущую конфигурацию работы в формате JSON, пример /InternetAgentApi/InternetAgentApiConfigClient.php.

{
    "interface": {
        "app_title": "Мой дом", // Заголовок окна (только платформа Windows) (не обязательно)
        "toolbar_title": "Мой дом", // Текст верхней панели (не обязательно)
        "image_logo": "https:\/\/flintnet.ru\/api\/apphome\/image\/house.jpg", // Картинка/логотип верхней панели (не обязательно)
        "sections": { // Управление видимостью и заголовками разделов.
            "news": {
                "enable": false, // false - не нужно показывать, true  - показать
                "name": "Новости" // Заголовок/Наименовние раздела
            },
            "info": {
                "enable": true,
                "name": "Информация"
            },
            "services": {
                "enable": true,
                "name": "Сервисы"
            },
            "support": {
                "enable": false,
                "name": "Чат",
                "read_only": false // false - показать окно ввода и кнопку отправки сообщения
            }
        }
    },
    "application": {
        "api_url": "https:\/\/flintnet.ru\/api\/apphome\/", // Точка входя в API на вашем сервере (этот параметр передается вместе с Ключем доступа, но при смене конфигурации, аварийной смене сервера вы можете передать приложению новую точку входа, приложение запомнит его и будет обращаться к ней.
        "debug": false, // Включение отладки, актуально только для Windows
        "versions": { // Здесь вы можете управлять показом диалогов с предложением обновления приложенния (не обязательно)
            "Windows": {
                "build": 63, // Версия билда, если она больше версии билда приложения, приложение покажет диалог с предложением обновить версию.
                "update_url": "https:\/\/flintnet.ru\/soft\/InternetAgentSetup.exe" // ссылка которую приложение откроет в стандартном браузере при согласии пользователя на обновление приложения
            },
            "Android": {
                "build": 64,
                "update_url": "https:\/\/play.google.com\/store\/apps\/details?id=ru.flintnet.InternetAgent"
            },
            "iOS": {
                "build": 0,
                "update_url": ""
            },
            "macOS": {
                "build": 0,
                "update_url": ""
            }
        }
    },
    "timers": { // Настройка периодичности опроса сервера для раздела support (актуально только для Windows, для мобильных платформ вы должны посылать push оповещения)
        "message": 60, // Обычная периодичность опроса сервера в секундах
        "message_dialog": 5 // Периодичность опроса серва в секундах после отправки на сервер (эта периодичность поддерживается в течении 10 минут, потом возвращается обычная периодичность
    },
    "internet_provider_token": "03e3267fa9cc4d398cb4679ab1bc155d" // Уникальный токен вашего сервера, используется для FCM регистрации в приложении и отправке push оповещений. Вы можете сгенерировать токен самостоятельно с помошью любого GUID генератора, длина строки токена должна быть равна 32 символам.
}

После получение конфигурации сервера и отсуствии ошибок приложение сразу готово к работе. При открытии разделов приложение запрашивает с вашего сервера соответствующие html страницы:

Простые запросы разделов news, info и services:

Более сложные запросы раздела support. Запросы к методу support имеют дополнительный метод (sub_method)

Примеры реальных запросов к API демо-сервера:

About

Универсальное приложение информирования и оповещения

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published