Turn any Google Blogger blog into a self-service, fully automated, human-curated web directory. BlogPoster is a lightweight PHP script that accepts website submissions, screens content with rigorous multi-tier moderation, validates feed domains, and publishes clean directory listings directly to Blogger via the Google Blogger REST API v3.
Whether you are running a niche link directory, a community showcase, or a syndicated web network, BlogPoster completely automates submission intake, thumbnail display, responsive video embedding, social icon rows, and RSS/Atom link generation without needing an external SQL database server.

Key Features
- Automated Blogger v3 REST Publishing: Directly pushes submitted websites to Google Blogger via OAuth2 refresh token authentication. Posts are published instantly with formatted titles, custom labels, structured thumbnails, description bodies, and outbound links.
- Stateless HMAC Security Check: Completely eliminates third-party cookie and PHP session issues. The built-in math security check uses server-signed HMAC SHA-256 tokens, allowing seamless embedding inside cross-domain iframes on Blogger pages.
- Comprehensive Content Moderation Shield: Protect your directory's reputation and AdSense compliance. Server-side and real-time client-side keyword filters block submissions containing adult content, illicit pharmaceuticals, get-rich-quick scams, hate speech, warez, and illegal schemes across every field.
- Cloudflare-Resilient Rate Limiting: Enforces a strict 3-submission limit per 24-hour window using a dual-layer strategy: instant client-side LocalStorage pre-checks paired with server-side rolling timestamp logs that support Cloudflare's
CF-Connecting-IPand secure client tokens. - Domain Deduplication & Feed Domain Match: Automatically maintains a local domain ledger (
submitted_domains.log) to reject duplicate submissions. In addition, user-supplied RSS/Atom feeds must match the root domain of the submitted website to prevent syndication spoofing. - Zero-Database Flat-File Architecture: No MySQL or PostgreSQL database setup required. All rate limits and logged domain ledgers are stored in lightweight, self-pruning flat files.
- Rich Media & Social Previews: Automatically formats and sanitizes thumbnail images, renders responsive privacy-enhanced YouTube embeds (
youtube-nocookie.com), and outputs clean social profile icon lists.
Technical Requirements
- PHP: 7.4, 8.0, 8.1, 8.2, or 8.3 (with
curlandmbstringextensions enabled) - Google Cloud Console Project: Blogger API v3 enabled with OAuth2 Client ID, Secret, and Refresh Token
- Web Server: Apache, Nginx, or LiteSpeed (supports HTTPS environments and Cloudflare proxying)
- File Permissions: Standard write permissions on the script directory for logging duplicate domains and rate limits
How to Set Up and Run BlogPoster
1. File Structure Setup
Upload the package files to your server or subdomain (e.g., https://submit.yourdomain.com/ or /var/www/html/poster/):
blogposter/
├── blogposter.php # Main public submission portal & API publishing engine
├── submitted_domains.log # Auto-created (records approved domains to block duplicates)
├── rate_limit.json # Auto-created (stores rolling 24-hour IP/token limits)
└── README.md # Quick-start setup & token generation guide
2. Google Cloud & Blogger API Configuration
Open blogposter.php in your code editor and enter your Google API credentials and Blogger ID at the top of the script:
define('BLOGGER_BLOG_ID', 'YOUR_BLOGGER_BLOG_ID');
define('OAUTH_CLIENT_ID', 'YOUR_GOOGLE_CLIENT_ID.apps.googleusercontent.com');
define('OAUTH_CLIENT_SECRET', 'YOUR_GOOGLE_CLIENT_SECRET');
define('OAUTH_REFRESH_TOKEN', 'YOUR_REFRESH_TOKEN');
define('CAPTCHA_SECRET', 'YOUR_RANDOM_SECRET_SALT_STRING');
3. Embed the Portal Directly into Blogger
Create a static page in your Blogger dashboard (e.g., /p/submit.html) and switch to HTML view to embed the submission form seamlessly via an iframe:
<iframe
src="https://yourdomain.com/blogposter/blogposter.php"
style="width: 100%; min-height: 1200px; border: none; overflow: visible;"
loading="lazy"
scrolling="yes"
title="Submit Site">
</iframe>
4. Customizing Directory Categories & Moderation
Modify the $categories array directly inside the script to match your Blogger label taxonomy. Category keys are automatically slugified for search-engine-friendly URLs:
$categories = [
'technology-and-computing' => 'Technology & Computing',
'business-and-finance' => 'Business & Finance',
'design-and-creative' => 'Design & Creative',
'education-and-learning' => 'Education & Learning',
'services-and-directory' => 'Services & Directory',
'other' => 'Other'
];
Get instant access to the complete source code, deployment instructions, and updates at scripts.bluaz.com.
🌐 Demo Website
🛒 Purchase
Purchase HERE - INSTANT DOWNLOAD
Instant download. For any questions please contact us.