Cortex

Lightweight Python wrapper for Facebook Messenger and Graph API. Send messages, post to feed, and handle webhooks easily with Flask.

Installation

pip install cortex

Setup

from dotenv import load_dotenv
load_dotenv()
import os

ACCESS_TOKEN = os.getenv("PAGE_ACCESS_TOKEN")
VERIFY_TOKEN = os.getenv("VERIFY_TOKEN")

Initialize Client

from cortex import Client

fb = Client(ACCESS_TOKEN)

Sending Messages

# Text message
fb.sendMsg(psid="USER_ID", text="Hello!", msg_type="text")

# Image message
fb.sendMsg(psid="USER_ID", msg_type="image", media_url="https://example.com/image.jpg")

# Video message
fb.sendMsg(psid="USER_ID", msg_type="video", media_url="https://example.com/video.mp4")

Posting to Feed

# Text post
fb.post(media_type="text", text="Hello world!")

# Image post
fb.postFeed(media_type="image", media_url="https://example.com/image.jpg", text="Caption here")

# Video post
fb.postFeed(media_type="video", media_url="https://example.com/video.mp4", title="My Video", description="Description")

Webhook with Flask

from flask import Flask, request
app = Flask(__name__)

@app.route("/webhook", methods=["GET", "POST"])
def webhook():
    if request.method == "GET":
        return fb.challenge(VERIFY_TOKEN)

    elif request.method == "POST":
        def echo(sender_id, msg_type, content):
            if msg_type == "text":
                fb.sendMsg(psid=sender_id, text=f"You sent: {content}", msg_type="text")
            else:
                fb.sendMsg(psid=sender_id, text=f"You sent a {msg_type}: {content}", msg_type="text")
        return fb.event(handler=echo)

if __name__ == "__main__":
    app.run(port=5000, debug=True)

Features

🖇️ Full Code Sample Here

Contact

Telegram: @cortexinvader

Facebook: facebook.com/Cortexinvader

License

MIT License