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.
|
||||
Reference in New Issue
Block a user