[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-e3946aeb-268b-4cb2-a4e7-5d1d31d0402c":3,"$f29siEpjHFXm4y10q03sILw2Nt6mSoUujwma3BEqOe0o":43},{"id":4,"title":5,"description":6,"categoryId":7,"moduleId":8,"tags":9,"prompt":10,"icon":11,"source":12,"sourceUrl":13,"authorId":14,"authorName":15,"isPublic":16,"stars":17,"runs":18,"createdAt":19,"updatedAt":19,"module":20,"category":27,"packages":34},"e3946aeb-268b-4cb2-a4e7-5d1d31d0402c","instagram-automation","通过Rube MCP（Composio）自动化Instagram任务：创建帖子、轮播图、管理媒体、获取洞察和发布限制。始终首先搜索工具以获取当前模式。","cat_prod_automation","mod_productivity","sickn33,productivity","---\nname: instagram-automation\ndescription: \"Automate Instagram tasks via Rube MCP (Composio): create posts, carousels, manage media, get insights, and publishing limits. Always search tools first for current schemas.\"\nrisk: critical\nsource: community\ndate_added: \"2026-02-27\"\n---\n\n# Instagram Automation via Rube MCP\n\nAutomate Instagram operations through Composio's Instagram toolkit via Rube MCP.\n\n## Prerequisites\n\n- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)\n- Active Instagram connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `instagram`\n- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas\n- Instagram Business or Creator account required (personal accounts not supported)\n\n## Setup\n\n**Get Rube MCP**: Add `https:\u002F\u002Frube.app\u002Fmcp` as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.\n\n\n1. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds\n2. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `instagram`\n3. If connection is not ACTIVE, follow the returned auth link to complete Instagram\u002FFacebook OAuth\n4. Confirm connection status shows ACTIVE before running any workflows\n\n## Core Workflows\n\n### 1. Create a Single Image\u002FVideo Post\n\n**When to use**: User wants to publish a single photo or video to Instagram\n\n**Tool sequence**:\n1. `INSTAGRAM_GET_USER_INFO` - Get Instagram user ID [Prerequisite]\n2. `INSTAGRAM_CREATE_MEDIA_CONTAINER` - Create a media container with the image\u002Fvideo URL [Required]\n3. `INSTAGRAM_GET_POST_STATUS` - Check if the media container is ready [Optional]\n4. `INSTAGRAM_CREATE_POST` or `INSTAGRAM_POST_IG_USER_MEDIA_PUBLISH` - Publish the container [Required]\n\n**Key parameters**:\n- `image_url`: Public URL of the image to post\n- `video_url`: Public URL of the video to post\n- `caption`: Post caption text\n- `ig_user_id`: Instagram Business account user ID\n\n**Pitfalls**:\n- Media URLs must be publicly accessible; private\u002Fauthenticated URLs will fail\n- Video containers may take time to process; poll GET_POST_STATUS before publishing\n- Caption supports hashtags and mentions but has a 2200 character limit\n- Publishing a container that is not yet finished processing returns an error\n\n### 2. Create a Carousel Post\n\n**When to use**: User wants to publish multiple images\u002Fvideos in a single carousel post\n\n**Tool sequence**:\n1. `INSTAGRAM_CREATE_MEDIA_CONTAINER` - Create individual containers for each media item [Required, repeat per item]\n2. `INSTAGRAM_CREATE_CAROUSEL_CONTAINER` - Create the carousel container referencing all media containers [Required]\n3. `INSTAGRAM_GET_POST_STATUS` - Check carousel container readiness [Optional]\n4. `INSTAGRAM_POST_IG_USER_MEDIA_PUBLISH` - Publish the carousel [Required]\n\n**Key parameters**:\n- `children`: Array of media container IDs for the carousel\n- `caption`: Carousel post caption\n- `ig_user_id`: Instagram Business account user ID\n\n**Pitfalls**:\n- Carousels require 2-10 media items; fewer or more will fail\n- Each child container must be created individually before the carousel container\n- All child containers must be fully processed before creating the carousel\n- Mixed media (images + videos) is supported in carousels\n\n### 3. Get Media and Insights\n\n**When to use**: User wants to view their posts or analyze post performance\n\n**Tool sequence**:\n1. `INSTAGRAM_GET_IG_USER_MEDIA` or `INSTAGRAM_GET_USER_MEDIA` - List user's media [Required]\n2. `INSTAGRAM_GET_IG_MEDIA` - Get details for a specific post [Optional]\n3. `INSTAGRAM_GET_POST_INSIGHTS` or `INSTAGRAM_GET_IG_MEDIA_INSIGHTS` - Get metrics for a post [Optional]\n4. `INSTAGRAM_GET_USER_INSIGHTS` - Get account-level insights [Optional]\n\n**Key parameters**:\n- `ig_user_id`: Instagram Business account user ID\n- `media_id`: ID of the specific media post\n- `metric`: Metrics to retrieve (e.g., impressions, reach, engagement)\n- `period`: Time period for insights (e.g., day, week, lifetime)\n\n**Pitfalls**:\n- Insights are only available for Business\u002FCreator accounts\n- Some metrics require minimum follower counts\n- Insight data may have a delay of up to 48 hours\n- The `period` parameter must match the metric type\n\n### 4. Check Publishing Limits\n\n**When to use**: User wants to verify they can publish before attempting a post\n\n**Tool sequence**:\n1. `INSTAGRAM_GET_IG_USER_CONTENT_PUBLISHING_LIMIT` - Check remaining publishing quota [Required]\n\n**Key parameters**:\n- `ig_user_id`: Instagram Business account user ID\n\n**Pitfalls**:\n- Instagram enforces a 25 posts per 24-hour rolling window limit\n- Publishing limit resets on a rolling basis, not at midnight\n- Check limits before bulk posting operations to avoid failures\n\n### 5. Get Media Comments and Children\n\n**When to use**: User wants to view comments on a post or children of a carousel\n\n**Tool sequence**:\n1. `INSTAGRAM_GET_IG_MEDIA_COMMENTS` - List comments on a media post [Required]\n2. `INSTAGRAM_GET_IG_MEDIA_CHILDREN` - List children of a carousel post [Optional]\n\n**Key parameters**:\n- `media_id`: ID of the media post\n- `ig_media_id`: Alternative media ID parameter\n\n**Pitfalls**:\n- Comments may be paginated; follow pagination cursors for complete results\n- Carousel children are returned as individual media objects\n- Comment moderation settings on the account affect what is returned\n\n## Common Patterns\n\n### ID Resolution\n\n**Instagram User ID**:\n```\n1. Call INSTAGRAM_GET_USER_INFO\n2. Extract ig_user_id from response\n3. Use in all subsequent API calls\n```\n\n**Media Container Status Check**:\n```\n1. Call INSTAGRAM_CREATE_MEDIA_CONTAINER\n2. Extract container_id from response\n3. Poll INSTAGRAM_GET_POST_STATUS with container_id\n4. Wait until status is 'FINISHED' before publishing\n```\n\n### Two-Phase Publishing\n\n- Phase 1: Create media container(s) with content URLs\n- Phase 2: Publish the container after it finishes processing\n- Always check container status between phases for video content\n- For carousels, all children must complete Phase 1 before creating the carousel container\n\n## Known Pitfalls\n\n**Media URLs**:\n- All image\u002Fvideo URLs must be publicly accessible HTTPS URLs\n- URLs behind authentication, CDN restrictions, or that require cookies will fail\n- Temporary URLs (pre-signed S3, etc.) may expire before processing completes\n\n**Rate Limits**:\n- 25 posts per 24-hour rolling window\n- API rate limits apply separately from publishing limits\n- Implement exponential backoff for 429 responses\n\n**Account Requirements**:\n- Only Business or Creator Instagram accounts are supported\n- Personal accounts cannot use the Instagram Graph API\n- The account must be connected to a Facebook Page\n\n**Response Parsing**:\n- Media IDs are numeric strings\n- Insights data may be nested under different response keys\n- Pagination uses cursor-based tokens\n\n## Quick Reference\n\n| Task | Tool Slug | Key Params |\n|------|-----------|------------|\n| Get user info | INSTAGRAM_GET_USER_INFO | (none) |\n| Create media container | INSTAGRAM_CREATE_MEDIA_CONTAINER | image_url\u002Fvideo_url, caption |\n| Create carousel | INSTAGRAM_CREATE_CAROUSEL_CONTAINER | children, caption |\n| Publish post | INSTAGRAM_CREATE_POST | ig_user_id, creation_id |\n| Publish media | INSTAGRAM_POST_IG_USER_MEDIA_PUBLISH | ig_user_id, creation_id |\n| Check post status | INSTAGRAM_GET_POST_STATUS | ig_container_id |\n| List user media | INSTAGRAM_GET_IG_USER_MEDIA | ig_user_id |\n| Get media details | INSTAGRAM_GET_IG_MEDIA | ig_media_id |\n| Get post insights | INSTAGRAM_GET_POST_INSIGHTS | media_id, metric |\n| Get user insights | INSTAGRAM_GET_USER_INSIGHTS | ig_user_id, metric, period |\n| Get publishing limit | INSTAGRAM_GET_IG_USER_CONTENT_PUBLISHING_LIMIT | ig_user_id |\n| Get media comments | INSTAGRAM_GET_IG_MEDIA_COMMENTS | ig_media_id |\n| Get carousel children | INSTAGRAM_GET_IG_MEDIA_CHILDREN | ig_media_id |\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.\n","","imported","https:\u002F\u002Fgithub.com\u002Fsickn33\u002Fantigravity-awesome-skills","user_system_seed","SkillOPIC",true,121,548,"2026-05-16 13:23:53",{"id":8,"name":21,"slug":22,"icon":23,"description":24,"sort":25,"createdAt":26},"效率工具","productivity","mdi-lightning-bolt-outline","文档处理、数据分析、自动化工作流",4,"2026-05-16 12:53:40",{"id":7,"name":28,"slug":29,"icon":30,"description":31,"moduleId":8,"sort":32,"skillCount":33,"createdAt":26},"自动化","automation","mdi-robot-outline","工作流自动化、批处理",3,101,[35],{"id":36,"skillId":4,"version":37,"fileName":38,"fileSize":39,"filePath":40,"fileHash":41,"manifest":42,"createdAt":19},"84a3cc67-1db5-4890-bb4b-4f09772f5554","1.0.0","instagram-automation.zip",3125,"uploads\u002Fskills\u002Fe3946aeb-268b-4cb2-a4e7-5d1d31d0402c\u002Finstagram-automation.zip","d787c26f476523a45de05f2eeaf331e75b01b5e663a52180dafc72045d6959eb","[{\"path\":\"SKILL.md\",\"isDirectory\":false,\"size\":8227}]",{"code":44,"message":45,"data":46},200,"success",{"items":47,"stats":48,"page":51},[],{"averageRating":49,"totalRatings":49,"ratingCounts":50},0,[49,49,49,49,49],{"limit":52,"offset":49,"hasMore":53,"nextOffset":52,"ratedOnly":16},15,false]