npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

devil-x-fca

v1.0.0

Published

Unofficial Facebook Chat API for Node.js with Auto-Update System - Enhanced by Devil-X

Downloads

23

Readme

devil-x-fca

npm version npm downloads GitHub license

Unofficial Facebook Chat API for Node.js - Interact with Facebook Messenger programmatically.

Enhanced & Maintained by Devil-X | Anonymous Cyber Team

🌟 What's New in devil-x-fca

  • ✨ Enhanced MQTT connection logging
  • 🔄 Auto-reconnect with configurable intervals
  • 📊 Better connection status indicators
  • 🎨 Improved console output with colors
  • 🔐 Enhanced security and stability
  • 🚀 Automatic update checking and installation
  • 💡 Better error handling and debugging

📦 Installation

npm install devil-x-fca

Or with yarn:

yarn add devil-x-fca

🔄 Auto-Update Feature

devil-x-fca includes an automatic update system that keeps your package up-to-date seamlessly:

How It Works

  1. 🔍 Automatic Check: Checks for updates when you start your bot
  2. 📋 Shows Changes: Displays recent changelog updates
  3. 📦 NPM Update: Runs npm install devil-x-fca@latest automatically
  4. 🔄 Auto-Restart: Restarts your bot to apply changes

Manual Update

You can also update manually:

npm install devil-x-fca@latest

⚠️ Important Disclaimer

We are not responsible if your account gets banned for spammy activities such as:

  • Sending lots of messages to people you don't know
  • Sending messages very quickly
  • Sending spammy looking URLs
  • Logging in and out very quickly

🔍 Introduction

Facebook now has an official API for chat bots, however it's only available for Facebook Pages.

devil-x-fca is the only API that allows you to automate chat functionalities on a user account by emulating the browser. This means:

  • Making the exact same GET/POST requests as a browser
  • Does not work with auth tokens
  • Requires Facebook account credentials (email/password) or AppState (Cookies)

🚀 Basic Usage

1. Login and Simple Echo Bot

const login = require("devil-x-fca");

login({ appState: [] }, (err, api) => {
    if (err) return console.error(err);

    api.listenMqtt((err, event) => {
        if (err) return console.error(err);

        // Echo back the received message
        if(event.type === "message") {
            api.sendMessage(event.body, event.threadID);
        }
    });
});

2. Send Text Message

const login = require("devil-x-fca");

login({ appState: [] }, (err, api) => {
    if (err) {
        console.error("Login Error:", err);
        return;
    }

    let targetID = "000000000000000"; // Replace with actual Facebook ID
    let msg = "Hey! I am powered by Devil-X FCA!";

    api.sendMessage(msg, targetID, err => {
        if (err) console.error("Message Sending Error:", err);
        else console.log("Message sent successfully!");
    });
});

3. Send File/Image

const login = require("devil-x-fca");
const fs = require("fs");

login({ appState: [] }, (err, api) => {
    if (err) return console.error("Login Error:", err);

    let targetID = "000000000000000";
    let imagePath = __dirname + "/image.jpg";

    if (!fs.existsSync(imagePath)) {
        console.error("Error: Image file not found!");
        return;
    }

    let msg = {
        body: "Check out this image!",
        attachment: fs.createReadStream(imagePath)
    };

    api.sendMessage(msg, targetID, err => {
        if (err) console.error("Message Sending Error:", err);
        else console.log("Message sent successfully!");
    });
});

📝 Message Types

| Type | Usage | | ---------------------- | ----------------------------------------------------------------- | | Regular text | { body: "message text" } | | Sticker | { sticker: "sticker_id" } | | File/Image | { attachment: fs.createReadStream(path) } or array of streams | | URL | { url: "https://example.com" } | | Large emoji | { emoji: "👍", emojiSize: "large" } (small/medium/large) |

💾 Saving AppState (Cookies)

To avoid getting locked out of your account, you should extract your AppState (Cookies) using an extension like EditThisCookie or C3C FbState and save it as appstate.json.

const fs = require("fs");
const login = require("devil-x-fca");

login(
    { appState: JSON.parse(fs.readFileSync("appstate.json", "utf8")) },
    (err, api) => {
        if (err) return console.error("Login Error:", err);
        console.log("✅ Logged in successfully!");
    }
);

🤝 Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a new branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📄 License

MIT License - See LICENSE for details.

👨‍💻 Author

Devil-X | Anonymous Cyber Team

⭐ Support

If this project is helpful, please give it a ⭐ on GitHub!

🔗 Links


Disclaimer: This is an unofficial API and is not officially supported by Facebook. Use responsibly.