3.4 KiB
3.4 KiB
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.