2872ae2b97
#19 Per-article cross-posting: Content plugin injects "Cross-Posting" fieldset into article editor via onContentPrepareForm. Dynamic checkbox list of all enabled services. Skip toggle. System plugin reads article attribs for mokojoomcross_services (array of service IDs) and mokojoomcross_skip (boolean). Unchecked = post to all. #20 Analytics dashboard: Posts-by-service breakdown table with success rate column (color-coded). Top cross-posted articles list. DashboardModel methods: getServiceBreakdown(), getDailyTrend(), getTopArticles(). #21 OAuth flows: OAuthHelper with authorize URL generation (Facebook, LinkedIn, Twitter), PKCE for Twitter, code→token exchange, token storage in service credentials. OauthController with authorize and callback actions. Reads client ID/secret from plugin params. #22 Wiki documentation: Services guide (all 9 platforms, default vs custom mode), REST API reference, Message Templates guide with examples per platform, Troubleshooting guide. Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
61 lines
2.5 KiB
Markdown
61 lines
2.5 KiB
Markdown
# Services
|
|
|
|
MokoJoomCross supports 9 platforms. Each is a separate plugin that can be enabled or disabled independently.
|
|
|
|
## Social Media
|
|
|
|
| Platform | Plugin | Character Limit | Media | Default Bot |
|
|
|----------|--------|----------------|-------|-------------|
|
|
| **Facebook** | plg_mokojoomcross_facebook | No limit | Yes | Yes |
|
|
| **X / Twitter** | plg_mokojoomcross_twitter | 280 | Yes | No |
|
|
| **LinkedIn** | plg_mokojoomcross_linkedin | 3,000 | Yes | No |
|
|
| **Mastodon** | plg_mokojoomcross_mastodon | 500 | Yes | No |
|
|
| **Bluesky** | plg_mokojoomcross_bluesky | 300 | Yes | No |
|
|
|
|
## Email Marketing
|
|
|
|
| Platform | Plugin | Character Limit | Media | Default Bot |
|
|
|----------|--------|----------------|-------|-------------|
|
|
| **Mailchimp** | plg_mokojoomcross_mailchimp | No limit | Yes | No |
|
|
|
|
## Chat / Messaging
|
|
|
|
| Platform | Plugin | Character Limit | Media | Default Bot |
|
|
|----------|--------|----------------|-------|-------------|
|
|
| **Telegram** | plg_mokojoomcross_telegram | 4,096 | Yes | Yes (@MokoWaaSBot) |
|
|
| **Discord** | plg_mokojoomcross_discord | 2,000 | Yes | Yes (webhook) |
|
|
| **Slack** | plg_mokojoomcross_slack | 40,000 | Yes | Yes (webhook) |
|
|
|
|
## Default vs Custom Mode
|
|
|
|
Services with "Default Bot" support offer two operating modes:
|
|
|
|
- **Default Mode**: Uses a pre-configured bot/app token managed by Moko. The admin only needs to provide a destination (chat ID, page ID, etc.). The API key is stored in the plugin's configuration and never visible in the service record.
|
|
|
|
- **Custom Mode**: The admin provides their own API keys, tokens, or webhook URLs. Full control, but requires setting up your own app/bot on the platform.
|
|
|
|
Configure default tokens in **Extensions → Plugins → MokoJoomCross - [Platform]**.
|
|
|
|
## Adding a Service
|
|
|
|
1. Go to **Components → MokoJoomCross → Services**
|
|
2. Click **New**
|
|
3. Select the service type
|
|
4. Enter a title and choose credentials mode
|
|
5. For **Default mode**: enter only the destination (chat ID, channel, etc.)
|
|
6. For **Custom mode**: enter your full API credentials as JSON
|
|
7. Save and enable
|
|
|
|
## Credentials Format
|
|
|
|
Each service expects specific JSON fields. See the individual service pages:
|
|
- [[Telegram]] — bot_token, chat_id
|
|
- [[Facebook]] — page_access_token, page_id
|
|
- [[Discord]] — webhook_url
|
|
- [[Slack]] — webhook_url
|
|
- [[LinkedIn]] — access_token, organization_id
|
|
- [[Mastodon]] — instance_url, access_token
|
|
- [[Bluesky]] — handle, app_password
|
|
- [[Mailchimp]] — api_key, list_id
|
|
- [[Twitter (X)]] — bearer_token, api_key, api_secret
|