Add README and push.env.example for F7_PUSH_SECRET webhook integration.
This commit is contained in:
@@ -0,0 +1,97 @@
|
|||||||
|
# f7support
|
||||||
|
|
||||||
|
Клиент заявок поддержки для **F7cloud** (WebView / браузер). REST API: **support.f7cloud.ru**.
|
||||||
|
|
||||||
|
## Установка на инстанс F7cloud
|
||||||
|
|
||||||
|
```bash
|
||||||
|
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`)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# База 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.
|
||||||
|
|
||||||
|
```text
|
||||||
|
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
|
||||||
|
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):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo -u www-data php occ config:app:get f7push api_secret
|
||||||
|
```
|
||||||
|
|
||||||
|
На сервере **support.f7cloud.ru** в `.env`:
|
||||||
|
|
||||||
|
```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)
|
||||||
|
|
||||||
|
```http
|
||||||
|
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>
|
||||||
|
```
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"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.
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
# Скопировать в .env на support.f7cloud.ru (не коммитить с реальным секретом).
|
||||||
|
# Секрет взять с F7cloud: sudo -u www-data php occ config:app:get f7push api_secret
|
||||||
|
|
||||||
|
F7_PUSH_SECRET=
|
||||||
|
F7_PUSH_URL=https://forbion.f7cloud.ru/ocs/v2.php/apps/f7support/api/v1/push
|
||||||
Reference in New Issue
Block a user