# Настройка API токена для ContentZavod

## 📋 Быстрая настройка

### Шаг 1: Получите API токен

1. Перейдите на <https://fittin.ru>
2. Войдите в личный кабинет
3. Найдите раздел "API" или "Интеграции"
4. Скопируйте ваш API токен

### Шаг 2: Настройте плагин

1. Войдите в админ-панель WordPress
2. Перейдите в **Настройки → ContentZavod**
3. Вставьте API токен в поле "API Токен"
4. Нажмите **"Сохранить настройки"**

### Шаг 3: Обновите постоянные ссылки

1. Перейдите в **Настройки → Постоянные ссылки**
2. Нажмите **"Сохранить изменения"** (ничего менять не нужно)
3. Это обновит правила перезаписи URL

### Шаг 4: Проверьте работу

Откройте sitemap:
```
https://ваш-сайт.ru/contentzavod-sitemap.xml
```

Если всё настроено правильно, вы увидите XML с списком статей.

---

## 🔧 Подробная инструкция

### Что такое API токен?

API токен - это уникальный ключ, который идентифицирует вашу учётную запись при обращении к API ContentZavod. Он необходим для:

- Получения списка ваших статей
- Доступа к HTML контенту статей
- Генерации sitemap с вашими публикациями

### Где хранится API токен?

API токен сохраняется в базе данных WordPress в таблице `wp_options` с ключом `contentzavod_api_token`. Токен хранится в зашифрованном виде и доступен только администраторам сайта.

### Безопасность API токена

⚠️ **Важно:**

- Не передавайте API токен третьим лицам
- Не публикуйте токен в открытом доступе
- Регулярно меняйте токен в личном кабинете fittin.ru
- При компрометации токена немедленно сгенерируйте новый

### Формат API токена

API токен представляет собой строку символов, например:
```
abc123def456ghi789jkl012mno345pqr678
```

Длина и формат токена могут варьироваться.

---

## 🌐 Как работает интеграция с API

### Архитектура

```
WordPress сайт
    ↓
Запрос: /contentzavod/view/article-slug
    ↓
Плагин ContentZavod
    ↓
API запрос: https://fittin.ru/public-api/public/content/{api_token}/view/article-slug
    ↓
Fittin.ru API
    ↓
JSON ответ: {"html_content": "<html>...</html>", ...}
    ↓
Плагин извлекает html_content
    ↓
Обработка HTML (замена ссылок)
    ↓
Отдача контента пользователю
```

### Эндпоинты API

Плагин использует следующие эндпоинты:

1. **Получение контента статьи:**
   ```
   GET /public-api/public/content/{api_token}/view/{slug}
   ```
   Возвращает: JSON с полем `html_content`

2. **Получение sitemap:**
   ```
   GET /public-api/public/content/{api_token}/sitemap.xml
   ```
   Возвращает: XML sitemap

3. **Список статей (будущая функция):**
   ```
   GET /public-api/public/content/{api_token}/enriched_news?page=1&per_page=20
   ```
   Возвращает: JSON с пагинированным списком статей

---

## ✅ Проверка настройки

### Через админ-панель

1. Перейдите в **Настройки → ContentZavod**
2. Если токен настроен, вы увидите:
   ```
   ✅ API токен настроен! Плагин готов к работе.
   ```
3. Используйте ссылки в разделе "Тестирование"

### Через браузер

**Проверка sitemap:**
```
https://ваш-сайт.ru/contentzavod-sitemap.xml
```

**Ожидаемый результат:** XML файл со списком статей

**Проверка robots.txt:**
```
https://ваш-сайт.ru/robots.txt
```

**Ожидаемый результат:** Должна быть строка:
```
Sitemap: https://ваш-сайт.ru/contentzavod-sitemap.xml
```

### Через командную строку

```bash
# Проверка sitemap
curl https://ваш-сайт.ru/contentzavod-sitemap.xml

# Проверка конкретной статьи (замените slug на реальный)
curl https://ваш-сайт.ru/contentzavod/view/article-slug
```

---

## ❌ Решение проблем

### Ошибка: "API токен не настроен"

**Причина:** API токен не введён или не сохранён.

**Решение:**
1. Перейдите в **Настройки → ContentZavod**
2. Введите API токен
3. Нажмите "Сохранить настройки"

### Ошибка: "Sitemap not available" или "API token not configured"

**Причина:** API токен пустой или неверный.

**Решение:**
1. Проверьте правильность токена в настройках
2. Убедитесь, что токен скопирован полностью (без пробелов)
3. Попробуйте сгенерировать новый токен на fittin.ru

### Ошибка: "Контент не найден в ответе API"

**Причина:** API вернул JSON без поля `html_content`.

**Решение:**
1. Проверьте, что slug статьи существует
2. Убедитесь, что статья опубликована (is_published=true)
3. Проверьте логи WordPress для деталей

### Ошибка 404 при обращении к статье

**Причина:** Правила перезаписи не обновлены.

**Решение:**
1. **Настройки → Постоянные ссылки**
2. Нажмите "Сохранить изменения"
3. Очистите кэш браузера

### Ошибка 401 или 403 от API

**Причина:** Неверный или истёкший API токен.

**Решение:**
1. Войдите в личный кабинет на fittin.ru
2. Сгенерируйте новый API токен
3. Обновите токен в настройках плагина

---

## 🔄 Смена API токена

### Когда нужно менять токен?

- Токен был скомпрометирован
- Истёк срок действия токена
- Переход на другую учётную запись
- По соображениям безопасности (рекомендуется раз в 3-6 месяцев)

### Как сменить токен?

1. Сгенерируйте новый токен на fittin.ru
2. Перейдите в **Настройки → ContentZavod**
3. Замените старый токен на новый
4. Нажмите "Сохранить настройки"
5. Проверьте работу sitemap

**Важно:** После смены токена старый токен перестанет работать немедленно.

---

## 📊 Мониторинг использования API

### Логирование запросов

Для отладки можно включить логирование запросов к API. Добавьте в `wp-config.php`:

```php
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
```

Логи будут сохраняться в `/wp-content/debug.log`.

### Проверка статуса API

Проверить доступность API можно напрямую:

```bash
curl -I https://fittin.ru/public-api/public/content/YOUR_TOKEN/sitemap.xml
```

Ожидаемый ответ:
```
HTTP/2 200
content-type: application/xml
```

---

## 🔐 Безопасность

### Рекомендации по безопасности

1. **Используйте HTTPS** - всегда используйте защищённое соединение
2. **Ограничьте доступ** - только администраторы могут видеть/менять токен
3. **Регулярно меняйте токен** - обновляйте токен каждые 3-6 месяцев
4. **Мониторьте использование** - следите за необычной активностью
5. **Бэкап настроек** - сохраняйте токен в безопасном месте

### Что НЕ делать

❌ Не публикуйте токен в коде на GitHub  
❌ Не передавайте токен по незащищённым каналам  
❌ Не используйте один токен на нескольких сайтах  
❌ Не сохраняйте токен в открытом виде в файлах  

---

## 💡 Полезные советы

1. **Тестируйте на staging** - сначала настройте на тестовом сайте
2. **Документируйте токен** - сохраните токен в менеджере паролей
3. **Настройте мониторинг** - отслеживайте доступность API
4. **Используйте кэширование** - настройте кэширование для оптимизации

---

## 📞 Поддержка

Если у вас возникли проблемы с настройкой API токена:

- **Сайт:** <https://fittin.ru>
- **Документация API:** <https://newsai.fittin.ru>
- **Email:** support@fittin.ru

---

**Версия:** 2.0.0  
**Дата:** 2025-10-24



