Social media publishing extension for Data Machine. Enables automated publishing to Twitter/X, Facebook Pages, Bluesky, Threads, and Pinterest.
- WordPress 6.9+
- PHP 8.2+
- Data Machine core plugin (required)
- Install and activate the Data Machine core plugin
- Install this plugin in your WordPress plugins directory
- Activate Data Machine Socials
- Configure authentication for each platform in Data Machine settings
| Platform | Auth Type | Character Limit | Media Support |
|---|---|---|---|
| Twitter/X | OAuth 1.0a | 280 chars | Images |
| Facebook Pages | OAuth 2.0 | No limit | Images |
| Bluesky | App Password | 300 chars | Images |
| Threads | OAuth 2.0 | 500 chars | Images |
| Bearer Token | N/A (pins) | Images required |
Each platform requires authentication setup:
- Go to Data Machine → Settings → Authentication
- Select the platform you want to configure
- Follow the OAuth flow or enter credentials
- Save and verify connection
Twitter/X:
- Requires Twitter Developer account
- Create an app at developer.twitter.com
- Enter API Key and API Secret in settings
- Complete OAuth authorization
Facebook:
- Requires Facebook App with Pages permissions
- Needs
pages_manage_posts,pages_manage_engagementscopes - Authorize your Facebook account
- Select which Page to publish to
Bluesky:
- Generate an App Password in Bluesky settings
- Enter your handle and app password
- No OAuth flow required
Threads:
- Requires Meta app registration
- OAuth 2.0 authentication
threads_basicandthreads_content_publishscopes
Pinterest:
- Requires Pinterest Developer account
- Generate an access token
- Configure default board or use category mapping
Once authenticated, social handlers appear in the Data Machine Pipeline Builder:
- Create or edit a Pipeline
- Add a "Publish" step
- Select the social platform handler
- Configure handler settings:
- Include Images: Enable/disable image uploads
- Link Handling: How to handle source URLs (append, reply, comment, none)
- Save and run your flow
Social handlers register AI tools that can be used in Data Machine Chat:
twitter_publish- Post to Twitter with media supportfacebook_publish- Post to Facebook Pagesbluesky_publish- Post to Blueskythreads_publish- Post to Threadspinterest_publish- Create Pinterest pins
This plugin follows the Data Machine extension pattern:
- Namespace:
DataMachineSocials\Handlers\{Platform} - Registration: Handlers self-register via
HandlerRegistrationTrait - Discovery: Core
HandlerAbilitiesdiscovers handlers via WordPress filters - Auth: Core
AuthAbilitiesmanages OAuth flows and token storage
data-machine-socials/
├── data-machine-socials.php # Plugin entry point
├── composer.json # Dependencies (twitteroauth)
├── inc/
│ └── Handlers/
│ ├── Twitter/
│ │ ├── Twitter.php # Handler implementation
│ │ ├── TwitterAuth.php # OAuth 1.0a auth
│ │ └── TwitterSettings.php # Handler settings
│ ├── Facebook/
│ │ ├── Facebook.php
│ │ ├── FacebookAuth.php # OAuth 2.0 auth
│ │ └── FacebookSettings.php
│ ├── Bluesky/
│ │ ├── Bluesky.php
│ │ └── BlueskyAuth.php # App password auth
│ ├── Threads/
│ │ ├── Threads.php
│ │ ├── ThreadsAuth.php # OAuth 2.0 auth
│ │ └── ThreadsSettings.php
│ └── Pinterest/
│ ├── Pinterest.php
│ ├── PinterestAuth.php # Bearer token auth
│ └── PinterestSettings.php
└── docs/
└── handlers/
├── twitter.md
├── facebook.md
├── bluesky.md
├── threads.md
└── pinterest.md
abraham/twitteroauth- Twitter OAuth 1.0a client- Data Machine core plugin - Provides base classes and abilities
cd data-machine-socials
composer installThis plugin follows WordPress coding standards and the Data Machine style guide:
- PSR-4 autoloading
- WordPress 6.9+ compatibility
- PHP 8.2+ features
- Proper namespacing and abstraction
GPL v2 or later - See LICENSE
- Issues: GitHub Issues
- Documentation: Data Machine Docs
- Author: Chris Huber (chubes.net)