PostPilot is a custom Tkinter-based desktop app that allows users to create, schedule, and post content in real time to their Facebook page.
This project is a simple, elegant, and interactive post scheduling desktop application built with Python and CustomTkinter. This tool allows users to schedule posts for different platforms, preview scheduled content (with optional images), and view a history of posted content β all in a scrollable, modern interface.
.jpg, .jpeg, .png, or .gif images to your posts.pip install -r requirements.txt
To get started with the Post Scheduler application, follow the steps below:
git clone https://github.com/Faith-issijude/PostPilot.git
cd postpilot
Ensure you Install all required packages:
pip install -r requirements.txt
Or manually:
pip install customtkinter pillow tkcalendar python-dotenv requests
Create a .env file in the project root to securely store your API keys:
FACEBOOK_API_KEY=""
TOGETHER_API_KEY=""
Visit https://developers.facebook.com and sign in.
Create a developer app and connect your Facebook Page.
Generate a short-lived access token for testing (valid for 1 hour).
Add Required Permissions: When generating your access token, request these permissions:
pages_manage_cta
pages_show_list
pages_messaging
page_events
pages_read_engagement
pages_manage_metadata
pages_read_user_content
pages_manage_posts
pages_manage_engagement
Visit the Graph API Explorer, paste your token, and submit.
Youβll see your Page Name and Page ID listed under the response.
Page ID. You will need this in the next step.Add your token to .env under FACEBOOK_API_KEY.
page_id in api_client.pyAfter copying your Page ID:
api_client.py.Ctrl + F and search for page_id.This step ensures the app correctly connects and posts to your Facebook page.
.env file as:TOGETHER_API_KEY=your_generated_key_here
model = "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8"
Make sure this model is used when sending requests to the Together API.
Once everything is set:
python main.py
β The GUI will open. You can now:
Developed with β€οΈ by Faithfulness Issjude and Ahmad Ibrahim
.
βββ core/
β βββ post.py # Core logic for creating, validating, and saving posts
β βββ api_client.py
β βββ scheduler.py
β βββ logger.py
βββ data/
β βββ scheduled_posts.json # Stores all scheduled posts as JSON (auto-created)
β βββ history.json
βββ media/
β βββ [uploaded_media] # Stores media files copied during post creation
βββ main.py
βββ README.md # Project documentation
βββ requirement.txt