BETA VERSION
fca-utils
A NodeJS package to interact with Facebook Messenger API (fca-unofficial)
Inspired by discord.js
Installation
npm install fca-utils
Basic Usages
Initialize
import { Client } from 'fca-utils'
const client = new Client({
prefix: "!",
ignoreMessageInCommandEvent: true,
});
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...
Message Events
client.on(EVENT, (msg) => {
});
Events
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
Message
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);
}
}
});
Screenshot
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
Command
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);
}
})
Screenshot
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"]
Reaction
client.on("reaction", (msg) => {
});
Unsend
client.on("unsend", (msg) => {
});
Event
client.on("event", (msg) => {
});
Others
client.on("others", (msg) => {
});
Comming soon...