Add Instagram service plugin (plg_mokosuitecross_instagram) #140

Open
opened 2026-06-21 16:09:44 +00:00 by jmiller · 0 comments
Owner

Summary

MokoOnyx template supports Instagram as a social platform, but MokoSuiteCross has no Instagram cross-posting plugin. Instagram is one of the most popular social platforms and users expect to be able to cross-post article content there.

API

Instagram uses the Content Publishing API (part of Meta's Graph API):

  1. Create media container: POST /{ig-user-id}/media with image_url, caption
  2. Publish: POST /{ig-user-id}/media_publish with the container ID
  3. Carousel (multiple images): Create container per image, then carousel container

Auth

  • Uses Facebook/Meta OAuth (same as Facebook plugin)
  • Requires instagram_basic, instagram_content_publish permissions
  • Page-linked Instagram Professional account required

Limitations

  • Images required (no text-only posts)
  • Caption max 2,200 characters
  • Max 30 hashtags
  • Video uploads supported but require hosted URL

Credential Fields

  • access_token — Facebook Page access token with Instagram permissions
  • instagram_account_id — Instagram Business/Creator account ID

Implementation

Follow the same pattern as existing service plugins:

  • src/Extension/InstagramService.php implementing MokoSuiteCrossServiceInterface
  • 2-step publish flow (create container → publish)
  • getMaxLength() → 2200
  • supportsMedia() → true
  • getSupportedMediaTypes()['image', 'video']

Related

  • MokoOnyx template includes Instagram in social icons layout
  • Facebook plugin can share OAuth infrastructure

Acceptance Criteria

  • Plugin created following existing plugin pattern
  • 2-step container → publish flow implemented
  • Credential fields in service.xml
  • Language files complete
  • Added to pkg_mokosuitecross.xml manifest
  • Default template added to install SQL
## Summary MokoOnyx template supports Instagram as a social platform, but MokoSuiteCross has no Instagram cross-posting plugin. Instagram is one of the most popular social platforms and users expect to be able to cross-post article content there. ## API Instagram uses the [Content Publishing API](https://developers.facebook.com/docs/instagram-platform/instagram-api-with-instagram-login/content-publishing) (part of Meta's Graph API): 1. **Create media container**: `POST /{ig-user-id}/media` with `image_url`, `caption` 2. **Publish**: `POST /{ig-user-id}/media_publish` with the container ID 3. **Carousel** (multiple images): Create container per image, then carousel container ### Auth - Uses Facebook/Meta OAuth (same as Facebook plugin) - Requires `instagram_basic`, `instagram_content_publish` permissions - Page-linked Instagram Professional account required ### Limitations - Images required (no text-only posts) - Caption max 2,200 characters - Max 30 hashtags - Video uploads supported but require hosted URL ## Credential Fields - `access_token` — Facebook Page access token with Instagram permissions - `instagram_account_id` — Instagram Business/Creator account ID ## Implementation Follow the same pattern as existing service plugins: - `src/Extension/InstagramService.php` implementing `MokoSuiteCrossServiceInterface` - 2-step publish flow (create container → publish) - `getMaxLength()` → 2200 - `supportsMedia()` → true - `getSupportedMediaTypes()` → `['image', 'video']` ## Related - MokoOnyx template includes Instagram in social icons layout - Facebook plugin can share OAuth infrastructure ## Acceptance Criteria - [ ] Plugin created following existing plugin pattern - [ ] 2-step container → publish flow implemented - [ ] Credential fields in service.xml - [ ] Language files complete - [ ] Added to pkg_mokosuitecross.xml manifest - [ ] Default template added to install SQL
Sign in to join this conversation.
No labels
Priority Medium
Type Feature
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: MokoConsulting/MokoSuiteCross#140