A NodeJS package to interact with Facebook Messenger API (fca-unofficial)
Inspired by discord.js
npm install fca-utils
import { Client } from 'fca-utils'
const client = new Client({
prefix: "!", // Prefix for commands
ignoreMessageInCommandEvent: true, // Ignore message in command event
});
client.loginWithAppState(process.env.BASE64_ENCODED_APPSTATE);
client.on("ready", (api, curID) => {
console.log("LOGGED IN AS", curID);
console.log("Listening for messages...");
});
Login with username and password coming soon...
client.on(EVENT, (msg) => {
// Do something
});
error
- Account error (locked/expired, etc.)message
- When a message is receivedcommand
- When a command is executed (only if prefix is set)reaction
- When a reaction is added to a messageunsend
- When a message is unsentevent
- When an event is received, such as rename, kick/add users, etc.others
- Others events:typ
,read
,presence
,read_receipt
client.on("message", (msg) => {
console.log("Message received:", msg.body);
if (msg.type === "message") {
try {
if (msg.args[0]?.toLowerCase() === "hi") {
msg.reply("Hello!");
}
} catch (e) {
console.error(e);
}
}
});
Basic msg properties:
msg.body
- Message bodymsg.args
- Array of message body splitted by spaces/line breaksmsg.senderID
- ID of the sendermsg.threadID
- ID of the thread/groupmsg.attachments
- Array of attachmentsmsg.mentions
- Array of mentions
Basic msg methods:
msg.send("your message")
- Send a message back to the threadmsg.reply("your message")
- Reply to the message
client.on("command", async (cmd) => {
console.log("Command received:", cmd.name);
try {
if (cmd.name === "ping") {
await cmd.message.reply("Pong!");
}
} catch (e) {
console.error(e);
}
})
cmd properties:
cmd.message
- same as the msg object in "message" eventcmd.name
- name of the commandcmd.commandArgs
- array of command arguments, for example:!ping hello world
->["hello", "world"]
client.on("reaction", (msg) => {
// Do something
});
client.on("unsend", (msg) => {
// Do something
});
client.on("event", (msg) => {
// Do something
});
client.on("others", (msg) => {
// Do something
});
Comming soon...