Files
MokoSuiteCross/wiki/Services.md
T
Jonathan Miller 2872ae2b97
Universal: Auto Version Bump / Version Bump (push) Has been cancelled
Update Server / Update Server (push) Has been cancelled
feat: low-priority issues #19-#22
#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>
2026-05-28 13:42:07 -05:00

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