# Hướng dẫn cài đặt Cron + FB Auto-Post + Comment Bot

## 1. Upload file lên server

Upload **2 file** vào cùng thư mục với `api.php` (thường là `/public_html/api/`):

```
public_html/api/
├── api.php          ← file cũ
├── cron_worker.php  ← upload mới
└── fb_webhook.php   ← upload mới
```

---

## 2. Cài đặt Cron Job trên cPanel

1. Đăng nhập **cPanel** → tìm **Cron Jobs**
2. Chọn interval: **Every 30 Minutes** (`*/30 * * * *`)
3. Command:
   ```
   /usr/bin/php /home/YOUR_USERNAME/public_html/api/cron_worker.php >> /dev/null 2>&1
   ```
   > Thay `YOUR_USERNAME` bằng username cPanel của bạn.
   > Kiểm tra path PHP đúng: thử `/usr/bin/php -v` trong Terminal cPanel

4. Nhấn **Add New Cron Job**

### Kiểm tra log:
- File log: `/public_html/api/cron_log.txt`
- Xem trực tiếp: `https://kienthucxahoi.click/api/cron_log.txt`

---

## 3. Cài đặt Facebook Webhook (reply comment real-time)

> Webhook phản hồi ngay khi có comment Shopee, không cần chờ 30 phút.

### Bước A — Tạo FB App (nếu chưa có)
1. Vào [developers.facebook.com](https://developers.facebook.com)
2. **My Apps → Create App** → chọn loại **Business**
3. Thêm sản phẩm: **Webhooks**

### Bước B — Cấu hình Verify Token
Mở file `fb_webhook.php`, dòng:
```php
define('VERIFY_TOKEN', 'my_fb_webhook_secret_2024');
```
Đổi thành chuỗi bí mật của bạn (ví dụ: `khoa_bi_mat_123`).

### Bước C — Đăng ký Webhook trong FB App
1. Vào FB App → **Webhooks** → **New Subscription** → chọn **Page**
2. Điền:
   - **Callback URL**: `https://www.kienthucxahoi.click/api/fb_webhook.php`
   - **Verify Token**: chuỗi bạn đặt ở bước B
3. Tick các **Subscription Fields**: `feed`, `mention`
4. Nhấn **Verify and Save**

### Bước D — Subscribe Page vào App
1. Dùng **Graph API Explorer**: `POST /{page-id}/subscribed_apps`
   ```json
   { "subscribed_fields": "feed,mention" }
   ```
   Header: `Authorization: Bearer {page_access_token}`

---

## 4. Luồng hoạt động sau khi cài xong

```
Mỗi 30 phút:
  ┌─ Có task pending? ─→ Xử lý task kế tiếp → Đăng FB
  │
  └─ Không có task? ──→ Tìm topic hót (Tavily) → Tạo task → Generate bài (Gemini) → Đăng FB

Liên tục (Webhook):
  FB Comment mới → Có link Shopee? → Reply "hỗ trợ 1.000₫ duy nhất hôm nay"
```

---

## 5. Cấu hình cần kiểm tra trong Admin

Vào **Admin → Quản lý Shopee**, đảm bảo đã điền:

| Trường | Bắt buộc | Mô tả |
|--------|----------|-------|
| `gemini_api_key` | ✅ | Để generate nội dung bài viết |
| `tavily_api_key` | ✅ | Để tìm chủ đề trending (nếu để trống sẽ dùng chủ đề mặc định) |
| FB Pages | ✅ | Ít nhất 1 page đang **bật** với Page Access Token hợp lệ |

---

## 6. Troubleshooting

| Vấn đề | Cách fix |
|--------|----------|
| Cron không chạy | Kiểm tra path PHP: `which php` trong cPanel Terminal |
| Task không được tạo | Xem `cron_log.txt` — thường do thiếu Gemini Key |
| FB không đăng được | Token hết hạn — vào Admin lấy lại Long-lived Token |
| Webhook không nhận | Kiểm tra App đã Approved chưa, Page đã Subscribe chưa |
| Reply comment bị lặp | File `fb_replied.json` đang được dùng — bình thường |

---

## 7. Bảo mật

File nhạy cảm cần chặn truy cập trực tiếp, thêm vào `.htaccess`:

```apache
<FilesMatch "^(cron_log|webhook_log|fb_replied|cron_worker\.lock)">
    Order allow,deny
    Deny from all
</FilesMatch>
```
