Connected Accounts
Updated
Pro feature. Available in MediaVerse Pro.
Requires WPMediaVerse Pro - This feature is available exclusively in the Pro version.
Connect an external photo platform to WPMediaVerse and move media in both directions - import existing photos and albums into your media library, and auto-push new uploads back out to that platform. In 1.5.0 the only built-in connector is Flickr, with full import, export, album browsing, and metadata sync support.
The connector framework is pluggable, so additional platforms can be added by developers in the future. This page covers the Flickr connector as it ships today.
What the Flickr Connector Does
Once a member connects their Flickr account, they can:
- Import photos and videos from their Flickr photostream or from a specific album (set) into WPMediaVerse.
- Export (auto-push) - automatically copy every new WPMediaVerse upload to their Flickr account.
- Browse albums - pick a Flickr album to import from or push exports into.
- Sync metadata - pull the latest title, description, tags, and privacy from Flickr back into the local media record (delta sync).
Privacy is mapped both ways. A Flickr "public/friends/family/private" visibility maps to the matching WPMediaVerse privacy level on import, and the member can choose how WPMediaVerse privacy maps back to Flickr on export.
Two Levels of Setup
There are two separate roles in this feature, and it helps to keep them apart:
- Site owner (admin) - enables the feature and optionally provides a plugin-level Flickr app key/secret so members can connect with one click. This is done once, in MediaVerse > Settings.
- Member (user) - connects their own Flickr account through an OAuth flow on the same settings page, then imports/exports their photos. Each user authorizes their own account; the connection (access token) is stored per user.
Step 1 - Enable Connected Accounts (Admin)
- In WordPress admin, go to MediaVerse > Settings.
- In the settings sidebar, open the Connected Accounts tab (under the Advanced group).
- Check Enable Platform Connectors feature.
- Click Save Changes.
When the feature is disabled, no connectors load and the connector REST endpoints are not registered.
Step 2 - (Recommended) Add a Plugin-Level Flickr App (Admin)
Providing a built-in Flickr API key/secret lets your members connect with a single Connect with Flickr button - they never need their own developer key. This is the smoothest experience for most sites.
Create a Flickr app
- Sign in at Flickr and go to flickr.com/services/apps/create.
- Choose Apply for a non-commercial key (or commercial, depending on your use).
- Give the app a name and description, agree to the API terms, and submit.
- Flickr shows you a Key and a Secret - copy both.
Enter the credentials in WPMediaVerse
- Back in MediaVerse > Settings > Connected Accounts.
- Paste the key into Flickr Plugin API Key.
- Paste the secret into Flickr Plugin API Secret.
- Click Save Changes.
The secret field is masked. When you re-save the settings page without re-typing it, the stored secret is preserved - an empty submit will not wipe it.
If you leave these two fields empty, the one-click Connect with Flickr button is hidden and members must supply their own Flickr key instead (see "Members using their own key" below).
Step 3 - Connect a Flickr Account (Member)
The connect flow runs on the same Connected Accounts settings tab. Each registered platform shows as a card.
With the plugin-level key (one click)
- On the Flickr card, click Connect with Flickr.
- You are redirected to Flickr's authorization page. Sign in if needed and click OK, I'll authorize it.
- Flickr redirects back to WPMediaVerse. The card now shows Connected as @yourusername.
Members using their own key
If your site has no plugin-level key - or a member wants a dedicated rate limit - they can use their own Flickr app:
- On the Flickr card, click Use your own API key (recommended for heavy usage).
- Create a Flickr app at flickr.com/services/apps (same steps as above) and copy the Key and Secret.
- Enter the Flickr API Key and Flickr API Secret in the expanded fields.
- Click Connect with My Key and complete the Flickr authorization.
A member using their own key gets the note "Using: Your own key (dedicated rate limit)" on the connected card; a member on the plugin key sees "Using: Plugin key (shared)".
How the connection is stored
The OAuth authorization returns an access token that is encrypted before being saved to that user's profile. Flickr does not expose a token-revocation endpoint, so disconnecting clears the locally stored token and validation cache. The actual API key/secret never reaches the browser.
Step 4 - Import Photos and Albums
After connecting, the member can browse and import their Flickr media.
- On the connected Flickr card, open the import dialog.
- Choose to browse the whole photostream or a single album (set).
- Select the photos to import.
- Confirm the import.
For each photo, WPMediaVerse:
- Downloads the best available image size from Flickr.
- Creates a media item in your library through the standard upload pipeline (so quotas, watermarking, and AI features all apply).
- Copies the title, description, tags, and Flickr privacy (mapped to WPMediaVerse privacy).
- Records the Flickr photo ID so the same photo is never imported twice - re-importing an already-imported photo is reported as "skipped".
The import result reports per-item outcomes: imported, skipped (already present), or failed (with an error message).
Step 5 - Export and Auto-Push New Uploads
Exporting copies a WPMediaVerse media item up to the member's Flickr account.
Auto-push
On a connected Flickr card, the member can toggle Auto-push new uploads > Enable. With this on, every new WPMediaVerse upload by that member is automatically exported to Flickr. When Action Scheduler is available the export runs in the background; otherwise it runs inline at upload time.
Default privacy on Flickr
The card has a Default privacy on Flickr selector that controls how exported media is made visible on Flickr:
| Option | Effect on Flickr |
|---|---|
| Match WPMediaVerse | Use the media item's own privacy, mapped to Flickr |
| Public | Always public on Flickr |
| Friends | Visible to Flickr friends |
| Friends + Family | Visible to Flickr friends and family |
| Private | Private on Flickr |
If a member set a default album, exported photos are also added to that Flickr album. Like import, export deduplicates - a media item already exported to Flickr is reported as "skipped" rather than uploaded again.
Step 6 - Sync Metadata (Delta Sync)
The Flickr connector supports delta sync: pulling the latest title, description, tags, and privacy from Flickr back into the matching local media records. This is useful when a member edits photo metadata on Flickr and wants WPMediaVerse to reflect those edits. Sync only touches media that originated from (or was exported to) Flickr for that member, and records a "last synced" timestamp.
Test the Connection
A connected card has a Test Connection button. It runs a live check against Flickr's identity endpoint (flickr.test.login) and confirms the stored token still works. The result is cached for 15 minutes to avoid hammering the API. If the token has been revoked on Flickr's side, the test reports the failure and the member can reconnect.
Disconnecting
Click Disconnect on a connected card to remove the local connection. This clears the encrypted tokens, the cached account identity, the auto-push and default-privacy preferences, and the validation cache. Because Flickr has no remote revoke endpoint, you may also want to revoke WPMediaVerse from your Flickr account's connected apps page if you want Flickr's side cleared too.
Settings
These options live on MediaVerse > Settings > Connected Accounts and are stored in wp_options.
| Setting | Option key | Default | Description |
|---|---|---|---|
| Enable Platform Connectors feature | mvs_connectors_enabled |
0 (off) |
Master switch for the whole Connected Accounts feature. When off, no connectors load and the REST endpoints are not registered. |
| Flickr Plugin API Key | mvs_pro_connector_flickr_app_key |
(empty) | Site-wide Flickr app key for one-click member connection. Leave empty to require each member to supply their own. |
| Flickr Plugin API Secret | mvs_pro_connector_flickr_app_secret |
(empty) | Site-wide Flickr app secret. Masked field - an empty re-save keeps the existing value. |
Per-member preferences (auto-push toggle, default privacy, the member's own key, and the OAuth tokens) are stored in user meta, not site options, so each member's Flickr connection is independent.
Troubleshooting
The "Connect with Flickr" button is missing. The plugin-level Flickr key/secret are empty. Either add them under Connected Accounts (Step 2) or have the member use Use your own API key instead.
No connector cards appear at all. The feature is off. Enable Platform Connectors feature and save (Step 1).
"Flickr OAuth token mismatch or session expired." The connect flow took longer than the 5-minute request-token window, or it was started in one browser tab and finished in another. Start the connect again from the Flickr card.
Imported photos look low-resolution. WPMediaVerse imports the best size Flickr exposes for that photo. Photos uploaded to Flickr at small sizes, or with download restrictions, may not offer a high-resolution original.
Test Connection still shows a stale result after reconnecting. The validation result is cached for 15 minutes. Disconnecting clears that cache; after a fresh connect the next Test Connection reflects the new token.
Auto-push isn't sending new uploads. Confirm the member has Auto-push new uploads enabled on the connected card, and that the media is owned by that connected member. Background exports rely on WordPress cron / Action Scheduler running on your site.
Developer Notes
The connector framework is pluggable. Each connector implements WPMediaVersePro\Connectors\ConnectorInterface and registers itself on the mvs_connectors filter, keyed by a slug. The REST surface lives under mvs-pro/v1/connectors:
| Route | Method | Purpose |
|---|---|---|
/connectors |
GET | List connectors and per-user connection state |
/connectors/{id}/connect |
POST | Start the OAuth flow (returns a redirect URL) |
/connectors/{id}/disconnect |
POST | Remove the stored connection |
/connectors/{id}/status |
GET | Live connection validation |
/connectors/{id}/photos |
GET | Browse remote photos (paginated) |
/connectors/{id}/albums |
GET | Browse remote albums |
/connectors/{id}/import |
POST | Import remote photos by ID |
/connectors/{id}/export |
POST | Export local media by ID |
/connectors/{id}/sync |
POST | Delta-sync metadata for linked media |
Read and initiate routes require the user to be logged in; browse, import, export, and sync routes require the user to be connected to that connector.