Multi-Format Bot Plugin Tutorials

Panduan Sambungan REST API Ke Bot WhatsApp, Telegram & Discord

Tutorial kod sumber rasmi pelbagai struktur (*Case Handler*, *CJS Plugin*, *ESM Plugin*, *Wibusoft*, *Telegraf*, *Discord.js*, *Python*).

WhatsApp Bot — Case Handler (Baileys / CommonJS)
const axios = require('axios');

const API_BASE = 'http://restapi.fakrulafif.com';
const API_KEY = 'YOUR_APIKEY';

// 1. Case Command !ai (GPT-4 AI Chat)
case 'ai': {
    if (!text) return reply('Sila masukkan soalan anda! Contoh: !ai Siapa presiden Malaysia?');
    reply('ā³ Sedang memproses jawapan AI...');
    try {
        const res = await axios.get(`${API_BASE}/api/ai/gpt4?text=${encodeURIComponent(text)}&apikey=${API_KEY}`);
        if (res.data && res.data.status) {
            reply(`šŸ¤– *FakrulDev AI Answer:*\n\n${res.data.result}`);
        } else {
            reply(`āŒ Ralat: ${res.data.message}`);
        }
    } catch (err) {
        reply('āŒ Gagal menghubungi server API.');
    }
    break;
}

// 2. Case Command !tiktok (TikTok Video Downloader No WM)
case 'tiktok':
case 'tt': {
    if (!args[0]) return reply('Sila masukkan URL TikTok! Contoh: !tiktok https://vt.tiktok.com/xxx');
    reply('ā³ Sedang memuat turun video TikTok...');
    try {
        const res = await axios.get(`${API_BASE}/api/downloader/tiktok?url=${encodeURIComponent(args[0])}&apikey=${API_KEY}`);
        if (res.data && res.data.status) {
            const data = res.data.result;
            await conn.sendMessage(from, { 
                video: { url: data.videoNoWm }, 
                caption: `šŸŽµ *${data.title}*\nšŸ‘¤ Author: ${data.author}` 
            }, { quoted: msg });
        } else {
            reply(`āŒ ${res.data.message}`);
        }
    } catch (err) {
        reply('āŒ Gagal memproses video TikTok.');
    }
    break;
}
WhatsApp Bot — CommonJS Plugin (`module.exports = handler;`)
const fetch = require('node-fetch');

let handler = async (m, { conn, text, usedPrefix, command }) => {
    if (!text) throw `Sila masukkan soalan anda!\nContoh: *${usedPrefix + command} Siapa FakrulDev?*`;
    
    m.reply('ā³ Sedang menjana jawapan AI...');
    let res = await fetch(`http://restapi.fakrulafif.com/api/ai/gpt4?text=${encodeURIComponent(text)}&apikey=YOUR_APIKEY`);
    let json = await res.json();
    
    if (json.status) {
        m.reply(`šŸ¤– *FakrulDev AI Answer:*\n\n${json.result}`);
    } else {
        throw json.message || 'Gagal memuat jawapan AI.';
    }
};

handler.help = ['ai '];
handler.tags = ['ai'];
handler.command = /^(ai|gpt4|ask)$/i;

module.exports = handler;
WhatsApp Bot — ES Modules Plugin (`export default handler;`)
import fetch from 'node-fetch';

let handler = async (m, { conn, text, usedPrefix, command }) => {
    if (!text) throw `Sila masukkan soalan anda!\nContoh: *${usedPrefix + command} Siapa FakrulDev?*`;
    
    m.reply('ā³ Sedang menjana jawapan AI...');
    let res = await fetch(`http://restapi.fakrulafif.com/api/ai/gpt4?text=${encodeURIComponent(text)}&apikey=YOUR_APIKEY`);
    let json = await res.json();
    
    if (json.status) {
        m.reply(`šŸ¤– *FakrulDev AI Answer:*\n\n${json.result}`);
    } else {
        throw json.message || 'Gagal memuat jawapan AI.';
    }
};

handler.help = ['ai '];
handler.tags = ['ai'];
handler.command = /^(ai|gpt4|ask)$/i;

export default handler;
WhatsApp Bot — Wibusoft / Custom Framework Plugin
module.exports = {
    cmd: ['ai', 'gpt4'],
    tags: ['ai'],
    desc: 'Tanya soalan kepada FakrulDev AI',
    run: async (client, m, { text, prefix, command }) => {
        if (!text) return client.reply(m.chat, `Penggunaan: ${prefix + command} [soalan]`, m);
        
        try {
            const res = await fetch(`http://restapi.fakrulafif.com/api/ai/gpt4?text=${encodeURIComponent(text)}&apikey=YOUR_APIKEY`);
            const json = await res.json();
            if (json.status) {
                client.reply(m.chat, json.result, m);
            } else {
                client.reply(m.chat, `Ralat: ${json.message}`, m);
            }
        } catch (e) {
            client.reply(m.chat, 'Gagal menyemak API.', m);
        }
    }
};
Telegram Bot — Telegraf Framework
const { Telegraf } = require('telegraf');
const axios = require('axios');

const bot = new Telegraf('YOUR_TELEGRAM_BOT_TOKEN');
const API_BASE = 'http://restapi.fakrulafif.com';
const API_KEY = 'YOUR_APIKEY';

bot.command('ai', async (ctx) => {
    const prompt = ctx.message.text.split(' ').slice(1).join(' ');
    if (!prompt) return ctx.reply('Sila taip soalan! Contoh: /ai apakah itu AI?');
    
    ctx.reply('ā³ Menjana jawapan AI...');
    try {
        const res = await axios.get(`${API_BASE}/api/ai/gpt4?text=${encodeURIComponent(prompt)}&apikey=${API_KEY}`);
        ctx.reply(`šŸ¤– FakrulDev AI:\n\n${res.data.result}`);
    } catch (err) {
        ctx.reply('āŒ Ralat server API.');
    }
});

bot.launch();
Discord Bot — Discord.js v14
const { Client, GatewayIntentBits } = require('discord.js');
const axios = require('axios');

const client = new Client({ intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages, GatewayIntentBits.MessageContent] });
const API_KEY = 'YOUR_APIKEY';

client.on('messageCreate', async (message) => {
    if (message.author.bot) return;

    if (message.content.startsWith('!ai')) {
        const prompt = message.content.slice(3).trim();
        if (!prompt) return message.reply('Sila sertakan soalan anda!');

        const res = await axios.get(`http://restapi.fakrulafif.com/api/ai/gpt4?text=${encodeURIComponent(prompt)}&apikey=${API_KEY}`);
        message.reply(res.data.result || 'Ralat AI.');
    }
});

client.login('YOUR_DISCORD_BOT_TOKEN');