WhatsApp Autoreply — Instalasi singkat Persyaratan: - PHP >= 8.0 - Composer - Ekstensi PHP: curl, json, mbstring - Web server (Apache / Nginx) dan akses publik untuk menerima webhook File penting: - `config.php` (wajib) — file konfigurasi utama - `webhook.php` (wajib) — endpoint webhook (POST JSON) - `log.php` (opsional) — tool web untuk melihat / export data DB (debug/admin) Langkah instalasi singkat: 1. Upload folder aplikasi `autoreply` ke website anda. Contoh `/var/www/website.id/public_html/autoreply`). Contoh link akhir: https://website.id/autoreply/. 2. Sesuaikan file `config.php` (lihat bagian panduan di bawah). 3. Pastikan folder `logs` (atau path log pada `config.php`) dapat ditulis oleh webserver jika logging diaktifkan. 4. Daftarkan URL webhook di menu webhook OneSender Anda menuju `https(s)://your-domain/auto /webhook.php`. Link menyesuaikan hasil instalasi. Panduan pengaturan file `config.php`: - `db_file` - Path ke file Excel yang dipakai sebagai database (contoh: `BASE_PATH . '/chatdb.xlsx'`). - Jika file tidak ada, sistem akan membuat file dan inisialisasi sheet: `contacts`, `inbox`, `autoreply`. - Pastikan path dapat ditulis oleh PHP agar data tersimpan. - `onesender` - `api_url` — URL endpoint provider WhatsApp untuk mengirim pesan. - `api_key` — API key/token untuk autentikasi. - `gemini` (opsional) - `key`, `model` — untuk integrasi Google Gemini (jika dipakai). - `openai` (opsional) - `url`, `key`, `model` — untuk integrasi OpenAI (jika dipakai). - Jika pakai OpenAI resmi, `url` biasanya: `https://api.openai.com/v1/chat/completions`. - `ai` - `model` — pilih `openai` atau `gemini`. - `prefix_prompt` — instruksi/petunjuk yang dikirim ke model sebelum pesan user. - `reply_prefix` / `reply_postfix` — tambahan di depan/akhir jawaban AI. - `stop_word` — kata (lowercase) yang jika dikirim dari operator (`is_from_me`) akan men-trigger embargo (non-aktif sementara bot). - `autoreply` - `enabled` — aktifkan / nonaktifkan auto-reply berbasis FAQ. - `max_length` — maksimal panjang pesan (karakter) yang diproses autoreply. - `log` - `enabled` — aktifkan/nonaktifkan logging. - `path` — folder penyimpanan log (contoh: `BASE_PATH . '/logs'`). - Aplikasi akan mencoba membuat folder jika tidak ada, namun tetap pastikan permission sudah benar. Contoh konfigurasi minimal (sesuaikan nilai Anda): BASE_PATH . "/chatdb.xlsx", "onesender" => [ "api_url" => "https://wa.example.com/api/v1/messages", "api_key" => "YOUR_API_KEY_HERE", ], "openai" => [ "url" => "https://api.openai.com/v1/chat/completions", "key" => "sk-...", "model" => "gpt-4o", ], "ai" => [ "model" => "openai", "prefix_prompt" => "", "stop_word" => "human", ], "autoreply" => ["enabled" => true, "max_length" => 200], "log" => ["enabled" => true, "path" => BASE_PATH . "/logs"], ]; Cara menguji webhook (contoh): curl -X POST https://your-domain/webhook.php \ -H "Content-Type: application/json" \ -d '{"sender_phone":"628123456789","sender_push_name":"Budi","message_text":"halo"}' Contoh payload minimal yang diharapkan: - `sender_phone` (contoh: `628123456789`) - `sender_push_name` (nama pengirim) - `message_text` (isi pesan) Penggunaan `log.php` (opsional): - List sheets: `log.php?action=list` - View sheet: `log.php?action=view&sheet=autoreply&format=json` - Export CSV: `log.php?action=view&sheet=autoreply&format=csv` - Tersedia juga action: `info`, `search`, `paginated`, `stats`, `all`, `export`. Tips & Troubleshooting singkat: - Jika muncul error \"Config file not found\", pastikan `config.php` ada dan Anda mengakses lewat `webhook.php` atau `log.php` (keduanya mendefinisikan `BASE_PATH`). - Pastikan `db_file` dan folder `logs` dapat ditulis oleh user webserver (mis. `www-data`). - Jangan commit API key ke repository publik. - Untuk debug, aktifkan logging sementara dan gunakan `log.php` untuk inspeksi data. Selesai. Jika mau, saya bisa bantu membuat contoh `config.php` template atau contoh webhook request payload lebih lengkap.