f7support

Клиент заявок поддержки для F7cloud (WebView / браузер). REST API: support.f7cloud.ru.

Установка на инстанс F7cloud

git clone git@git.f7cloud.ru:root/f7support.git /var/www/f7cloud/apps/f7support
cd /var/www/f7cloud
sudo -u www-data php occ app:enable f7support

Конфигурация (occ)

# База API поддержки
sudo -u www-data php occ config:app:set f7support support_api_base --value=https://support.f7cloud.ru

# Опрос списка заявок (мс), по умолчанию 3000
sudo -u www-data php occ config:app:set f7support tickets_poll_ms --value=3000

# Push от support API → f7push (см. ниже)
sudo -u www-data php occ config:app:set f7support push_enabled --value=yes

Push: новые сообщения от оператора

Когда сотрудник отвечает в заявке на support.f7cloud.ru, support-сервер вызывает webhook на F7cloud → f7push → FCM → APK.

support.f7cloud.ru  ──POST /apps/f7support/api/v1/push──►  F7cloud  ──►  f7push  ──►  телефон

Секрет F7_PUSH_SECRET

Один секрет для аутентификации webhook. На F7cloud хранится в:

Ключ occ Назначение
f7push api_secret основной секрет API f7push
f7support push_webhook_secret копия для f7support (опционально; webhook принимает оба)

Сгенерировать и прописать на forbion:

bash /var/www/f7cloud/apps/f7push/scripts/generate-secret.sh --regenerate
sudo -u www-data php occ config:app:set f7support push_webhook_secret --value="$(sudo -u www-data php occ config:app:get f7push api_secret)"

Получить текущий секрет (для .env на support):

sudo -u www-data php occ config:app:get f7push api_secret

На сервере support.f7cloud.ru в .env:

F7_PUSH_SECRET=<тот же секрет>
F7_PUSH_URL=https://forbion.f7cloud.ru/ocs/v2.php/apps/f7support/api/v1/push

Пример без секрета: push.env.example в корне репозитория.

Не коммитить секрет в git.

Webhook (вызывает support API)

POST https://<F7CLOUD-HOST>/ocs/v2.php/apps/f7support/api/v1/push
OCS-APIRequest: true
Content-Type: application/json
X-F7-Push-Secret: <F7_PUSH_SECRET>
{
  "userId": "username",
  "ticketNumber": "12345",
  "ticketSubject": "Тема заявки",
  "body": "Текст ответа оператора"
}
  • userId — логин F7cloud (X-F7cloud-User от клиента). Альтернатива: "email": "user@example.com".
  • Вызывать только при сообщении от support, не от клиента.
  • Клик по push открывает /apps/f7support/?ticket=12345.

Требования на F7cloud

  • Приложение f7push включено, Firebase настроен, APK с FCM установлен у пользователя.
  • f7push enabled_sources содержит f7support (или *).
  • f7support push_enabled=yes.

Версия

0.1.9 — webhook push, deep link ?ticket=, notifier для f7push.

S
Description
Приложение для тех. поддержки F7cloud
Readme 606 KiB
Languages
JavaScript 59.6%
CSS 28.5%
PHP 11.9%