aryan-chat-fca
v0.0.7
Published
A Facebook chat api for messenger bots
Maintainers
Readme
aryan-chat-fca
powered by nix
- basic usage example
const fs = require("fs");
const path = require("path");
const { login } = require("ws3-fca");
let credentials;
try {
credentials = { appState: JSON.parse(fs.readFileSync("appstate.json", "utf8")) };
} catch (err) {
console.error("❌ appstate.json is missing or malformed.", err);
process.exit(1);
}
console.log("Logging in...");
login(credentials, {
online: true,
updatePresence: true,
selfListen: false,
randomUserAgent: false
}, async (err, api) => {
if (err) return console.error("LOGIN ERROR:", err);
console.log(`✅ Logged in as: ${api.getCurrentUserID()}`);
const commandsDir = path.join(__dirname, "modules", "commands");
api.commands = new Map();
if (!fs.existsSync(commandsDir)) fs.mkdirSync(commandsDir, { recursive: true });
for (const file of fs.readdirSync(commandsDir).filter(f => f.endsWith(".js"))) {
const command = require(path.join(commandsDir, file));
if (command.name && typeof command.execute === "function") {
api.commands.set(command.name, command);
console.log(`🔧 Loaded command: ${command.name}`);
}
}
api.listenMqtt(async (err, event) => {
if (err || !event.body || event.type !== "message") return;
const prefix = "/";
if (!event.body.startsWith(prefix)) return;
const args = event.body.slice(prefix.length).trim().split(/ +/);
const commandName = args.shift().toLowerCase();
const command = api.commands.get(commandName);
if (!command) return;
try {
await command.execute({ api, event, args });
} catch (error) {
console.error(`Error executing ${commandName}:`, error);
api.sendMessageMqtt("❌ An error occurred while executing the command.", event.threadID, event.messageID);
}
});
});