Dokumentasi
FHY-Bot bertindak sebagai jembatan komunikasi antara platform pesan WhatsApp Anda. Ia mendengarkan pesan atau event yang diterima dari pengguna dan memungkinkan merespons sesuai dengan bot auto-reply yang telah Anda tetapkan.
Penginstalan
Untuk memulai menggunakan fhy-bot, ikuti langkah-langkah di bawah ini.
Prasyarat
Langkah-langkah Instalasi
- Windows / Linux
- Clone repositori ke dalam direktori lokal Anda:
git clone https://github.com/fitri-hy/fhy-bot.git
- Masuk ke dalam direktori proyek:
cd fhy-bot
- Install dependensi:
npm install
- Jalankan proyek:
npm start
- Termux
- Clone repositori ke dalam direktori lokal Anda:
git clone https://github.com/fitri-hy/fhy-bot.git
- Masuk ke dalam direktori proyek:
cd fhy-bot
- Unduh folder
node_modules
yang telah disiapkan:
Di Termux, Anda tidak perlu menjalankan
npm install
. Anda dapat langsung mengunduh foldernode_modules
yang telah disiapkan untuk menghindari kesalahan dengan menggunakan perintah berikut:
curl -L -o node_modules.tar.gz https://fhy-bot-website.vercel.app/termux/node_modules.tar.gz
tar -xvzf node_modules.tar.gz
- Jalankan proyek:
npm start
Plugin
Anda dapat membuat, mengubah, dan menghapus plugin tanpa perlu melakukan modifikasi pada kode inti proyek Anda.
Aturan wajib yang harus Anda ikuti.
module.exports = async (sock, message, msg, sender) => {
// Implementasikan logika untuk plugin Anda di sini.
};
Membuat Plugin dalam Proyek
- Arahkan ke dalam folder
plugin/
dan buat sebuah file plugin dengan ekstensi.js
. - Implementasikan fungsi plugin Anda pada file tersebut. Berikut adalah contoh dasar implementasinya:
// example.js module.exports = async (sock, message, msg, sender) => { if (msg && msg.toLowerCase() === '.test') { await sock.sendMessage(sender, { text: 'Ini adalah respons untuk perintah test' }); } };
- Simpan perubahan yang telah dilakukan, dan sistem akan secara otomatis menyinkronkan plugin baru Anda.
- Untuk menguji plugin, cukup kirimkan pesan dengan perintah
.test
kepada bot Anda, dan bot akan memberikan respons sesuai dengan fungsi yang telah Anda definisikan dalam plugin.
Membuat Plugin dalam Pesan
Perintah bawaan sistem untuk mengelola plugin melalui pesan.
Kondisi Pesan | Deskripsi |
---|---|
.add-plugin <namafile.js> <kode> |
Membuat/mengubah plugin |
.list-plugin |
Daftar nama plugin |
.delete-plugin <namafile.js> |
Menghapus plugin |
.copy-plugin <namafile.js> |
Menyalin plugin |
Dibawah ini adalah contoh penggunaan untuk membuat/mengubah plugin melalui pesan obrolan:
- Kirim pesan kepada bot Anda dengan format berikut:
.add-plugin example.js module.exports = async (sock, message, msg, sender) => { if (msg && msg.toLowerCase() === '.test') { await sock.sendMessage(sender, { text: 'Ini adalah respons untuk perintah test' }); } };
- Jika bot memberikan respons yang sesuai, maka plugin berhasil ditambahkan dan siap digunakan.
- Untuk menguji plugin, kirimkan pesan dengan perintah
.test
kepada bot, dan bot akan merespons sesuai dengan fungsi yang telah Anda definisikan dalam plugin.
Contoh penggunaan lainnya dapat Anda temukan dengan mengikuti aturan yang terdapat dalam tabel sebelumnya.
Perintah Bawaan
Kondisi Pesan | Deskripsi |
---|---|
.text |
Respon pesan teks |
.img |
Respon pesan gambar |
.audio |
Respon pesan audio |
.video |
Respon pesan video |
.location |
Respon pesan lokasi |
Konfigurasi
Konfigurasi utama yang digunakan untuk menjalankan aplikasi, mencakup pengaturan server, identitas bot, otentikasi API, pengelolaan koneksi socket, kebijakan CORS, serta mode operasi bot. Setiap parameter dapat disesuaikan untuk mengoptimalkan performa dan keamanan sistem.
Jalur Berkas:
/config/config.js
Nama Konfigurasi | Deskripsi Singkat |
---|---|
PORT |
Port yang digunakan oleh server. |
BOT_NUMBER |
Nomor bot WhatsApp (digunakan saat mode kode pairing). |
API_KEY |
Kunci API untuk otorisasi akses webhook. |
WEBHOOK_TIMEOUT |
Waktu tunggu (ms) webhook. |
WEBHOOK_SANITATION |
Aktif/Nonaktif apakah data webhook harus disanitasi. |
SOCKET_TIMEOUT |
Timeout koneksi socket dalam milidetik. |
SOCKET_ATTEMPTS |
Jumlah maksimum percobaan koneksi socket. |
SOCKET_PAIRING |
Aktif/Nonaktif metode koneksi socket (QRCode / Kode Pairing). |
CORS_ORIGIN |
Daftar origin yang diizinkan untuk akses CORS (webhook). |
CORS_CREDENTIALS |
Aktif/Nonaktif apakah permintaan CORS mengizinkan kredensial. |
SELF_MODE_GLOBAL |
Aktif/Nonaktif mode self untuk pesan perintah global. |
SELF_MODE_PLUGIN |
Aktif/Nonaktif mode self untuk pesan perintah plugin. |
GROUP_GREETING |
Aktif/Nonaktif pesan sambutan grup. |
MESSAGE_LOG_RAW |
Menampilkan log pesan mentah |
Webhook
Anda dapat mengonfigurasi dan mengelola webhook aplikasi Anda di berkas
/routes/web.js
. Di sinilah Anda dapat menentukan rute dan logika untuk menangani permintaan webhook yang masuk secara efektif.
1. Teks
POST http://localhost:3000/webhook/text
Authorization
Key | Value | Add to |
---|---|---|
x-api-key |
api-key-anda |
Headers |
Body Request
Mendukung banyak penerima
{
"recipient": [628xxxxxxxx, 628xxxxxxxx],
"data": "data string Anda"
}
2. Gambar
POST http://localhost:3000/webhook/image
Authorization
Key | Value | Add to |
---|---|---|
x-api-key |
api-key-anda |
Headers |
Body Request
Mendukung banyak penerima
{
"recipient": [628xxxxxxxx, 628xxxxxxxx],
"image": "url_images",
"data": "data string Anda"
}
3. Audio
POST http://localhost:3000/webhook/audio
Authorization
Key | Value | Add to |
---|---|---|
x-api-key |
api-key-anda |
Headers |
Body Request
Mendukung banyak penerima
{
"recipient": [628xxxxxxxx, 628xxxxxxxx],
"audio": "url_audio"
}
4. Video
POST http://localhost:3000/webhook/video
Authorization
Key | Value | Add to |
---|---|---|
x-api-key |
api-key-anda |
Headers |
Body Request
Mendukung banyak penerima
{
"recipient": [628xxxxxxxx, 628xxxxxxxx],
"video": "url_video",
"data": "data string Anda"
}
5. Lokasi
POST http://localhost:3000/webhook/location
Authorization
Key | Value | Add to |
---|---|---|
x-api-key |
api-key-anda |
Headers |
Body Request
Mendukung banyak penerima
{
"recipient": [628xxxxxxxx, 628xxxxxxxx],
"location": "latitude,longitude"
}