Patreon integration for phpBB — link patron accounts via OAuth and automatically manage forum group membership based on pledge tiers. Developed and maintained by Avathar.be.
1.0.0-RC3
- phpBB 3.3.0 or higher
- PHP 8.1 or higher
- PHP curl extension
Account linking
- Users link their Patreon account from the UCP via OAuth 2.0
- Unlink from UCP with immediate group demotion
Tier-based group sync
- Automatic phpBB group assignment based on Patreon pledge tier
- Tier-to-group mapping configured in the ACP with "Fetch Tiers" button (no manual ID lookup)
- Grace period option: delay group removal after a patron cancels or payment fails
Real-time and scheduled sync
- Real-time sync via Patreon webhooks (pledge create, update, delete)
- Nightly cron task for full reconciliation against the Patreon members API
- Manual "Sync Now" button in the ACP for on-demand reconciliation
- "Refresh my status" button in UCP so users can trigger an immediate re-sync (rate-limited to once per 5 minutes)
UCP patron dashboard
- Tier name, pledge status (color-coded), pledge amount, assigned forum group, and last sync time
- Human-readable status labels (Active Patron, Payment Declined, Former Patron, Pending)
Public supporters page
- Public page at
/patreon/supporterslisting opted-in active patrons - Shows avatar, username (coloured), rank, group (coloured), tier name, and optionally pledge amount
- ACP master switch to enable/disable the page and the pledge amount column
- UCP opt-in checkboxes: "Show me as a supporter" and "Show my pledge amount" — both default off
- Link in the navbar sandwich menu when enabled
- Patreon tier badge on the "The Team" page for active patrons
Administration
- "Fetch Campaign ID" button in the ACP (auto-detects from the API)
- Webhook management: register via API or manually via the Patreon portal, with "Check Status" and "Test Ping" buttons
- Notification to admins and moderators when a user links their Patreon account
- Linked users overview in the ACP showing coloured usernames, tier, status, pledge amount, and sync timestamps
- Creator access token auto-refresh on expiry
- Collapsible help text throughout the ACP explaining how each section works
- Dutch, English, French, German, Portuguese, Spanish
- 1.0.0-RC3
- Public supporters page at
/patreon/supporterswith avatar, rank, coloured group, tier (#2) - Optional pledge amount column on supporters page, gated by ACP toggle + UCP opt-in (#2)
- Patreon tier badge on "The Team" page for active patrons (#2)
- Supporters page link in navbar sandwich menu (#2)
- ACP: coloured usernames in linked users table
- UCP: "Refresh my status" re-sync button with 5-minute rate limit (#3)
- UCP: show assigned forum group, human-readable status labels, last sync time (#3)
- UCP: color-coded pledge status (active/declined/former/pending) (#3)
- UCP: "Show me as a supporter" and "Show my pledge amount" opt-in checkboxes (#2)
- Migrations:
show_public,show_pledge_publiccolumns, supporters page config keys - Unit test suite: 76 tests, 172 assertions
- CI: PHPUnit 9.x on PHP 8.1-8.4 with MySQL, PostgreSQL, and Windows
- Public supporters page at
- 1.0.0-dev
- Initial release
- OAuth 2.0 account linking via custom PHPoAuthLib service (works with
auth_method = db) - Patreon API v2 client with creator token auto-refresh
- Tier-to-group mapper with grace period support
- Dedicated
patreon_tierstable for tier metadata and group mapping - Webhook receiver with HMAC-MD5 signature validation
- Nightly cron reconciliation task
- ACP: API credentials, webhook management, tier mapping, linked users table
- UCP: link/unlink Patreon account, view tier and pledge status
- Notification type for admin/moderator alerts on account linking
- GitHub Actions CI (PHP 8.1-8.4) and EPV validation
- Download the latest release and unzip it.
- Copy the entire contents from the unzipped folder to
/ext/avathar/bbpatreon/. - Navigate in the ACP to
Customise -> Manage extensions. - Find
bbPatreonunder "Disabled Extensions" and clickEnable.
- Navigate to
ACP -> Extensions -> Patreon Integration -> Settings. - Enter your Patreon API credentials (Client ID, Client Secret, Creator tokens).
- Click
Fetchnext to Campaign ID to auto-detect it. - Click
Fetch Tiersand assign a phpBB group to each Patreon tier, then clickSubmit. - Register a webhook via the Patreon portal or the API button, and paste the secret.
- Tell your members to visit
UCP -> Patreonand click "Link your Patreon Account".
See contrib/TESTING.md for details on running the test suite.
- Navigate in the ACP to
Customise -> Manage extensions. - Click the
Disablelink forbbPatreon. - To permanently uninstall, click
Delete Data, then delete thebbpatreonfolder from/ext/avathar/.
© 2026 - Avathar.be (Andy Vandenberghe)