Communitygithub.com

sultanlive/instagram-post

Instagramへの投稿と、OpenClaw、Hermes、Claude Code、CodexからのInstagram投稿、リール、カルーセルのスケジュール設定を行います。1Social MCPサーバーを介してユーザー自身のInstagramアカウントに公開し(OAuth認証、APIキー不要)、キャプション、ハッシュタグ、アスペクト比、メディアのルールを事前に確認し、最大30日先までスケジュール設定して配信レシートを返します。

instagram-post とは?

このスキルは、1Social MCPサーバーを介してInstagramへの投稿、スケジュール設定、管理を行うためのものです。OpenClaw、Hermes、Claude Code、CodexなどのAIエージェントツールと連携し、OAuth認証のみで動作するため、APIキーの管理が不要です。写真、リール、カルーセル形式の投稿に対応し、最大30日先までのスケジュール設定が可能です。また、公開前にInstagramのルール(キャプション文字数制限、ハッシュタグ数、アスペクト比など)を`preview_post`ツールでチェックできるため、投稿エラーを防止できます。公開後は、ステータス確認、スケジュール変更、キャンセル、削除(ただしInstagramはAPIによる削除非対応)、配信失敗時の再試行など、包括的な管理機能を提供します。重要なのは、公開前にユーザーに明確な確認を求め、結果を正直に報告する点です。不明な配信状態は「不明」と報告し、推測ではありません。

対応✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/sultanlive/1social-skills/tree/main/plugins/instagram-by-1social/skills/instagram-post

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

1Socialを使ったInstagram投稿

1Socialは、ユーザー自身のInstagramアカウントに公開し、実際に届いたものを報告します。

セットアップ(初回のみ)

以下の手順で1Social MCPサーバーを駆動します。list_accountsなどのツールが利用できない場合は、まず接続してください。サインインはブラウザでのOAuthです。保存するAPIキーはありません。これらのコマンドを実行する前にユーザーに確認を取ってください。ログイン手順では、ユーザー自身が1Socialにサインインするページが開きます。

  • OpenClaw: openclaw mcp set 1social '{"url":"https://mcp.1social.dev/mcp","transport":"streamable-http","auth":"oauth"}' を実行し、続けて openclaw mcp login 1social を実行します。openclaw mcp doctor 1social --probe で確認します。
  • Hermes: ~/.hermes/config.yaml に以下を追加します。
    mcp_servers:
      1social:
        url: "https://mcp.1social.dev/mcp"
        auth: oauth
    
    その後、hermes mcp login 1social を実行します(ヘッドレスホストの場合は hermes mcp login 1social --flow device)。
  • Claude Code: claude mcp add --transport http 1social https://mcp.1social.dev/mcp を実行します。
  • その他のクライアント: https://1social.dev/mcp に各クライアントのセットアップ方法が記載されています。

ユーザーには1Socialアカウントが必要です。新規アカウントは無料トライアルから始まります。トライアル終了後の公開には有料プラン(https://1social.dev/pricing)が必要です。

ワークフロー

  1. アカウントを見つける。 list_accounts を呼び出します。接続されているチャンネルとそのID、各ネットワークのライブ制限、プラン、残りの月次クォータが返されます。Instagramアカウントが接続されていない場合は、https://1social.dev/app で接続するようユーザーに伝えます。接続にはブラウザが必要であり、チャットからは実行できません。list_accounts がこのスキルと異なる制限を報告した場合は、list_accounts を信頼してください。
  2. ネットワーク向けに下書きを作成する。 以下のルールに従って投稿を作成します。投稿は segments のリストです。各セグメントは { text, mediaIds? } です。
  3. メディアを添付する。
    • ユーザーがチャットでファイルを添付した場合 → media に配置します。
    • 公開されたhttpsリンクがある場合 → mediaUrls に配置します。
    • ディスク上のファイルのみがある場合(OpenClaw、Hermes、Claude Code、Codex、またはその他のCLIエージェント) → upload_media を呼び出し、その説明に従ってアップロード手順を実行し、返された publicUrl を mediaUrls に配置します。ローカルホストのURLは機能しません。その前に、アップロードするファイルを正確にユーザーに表示し、同意を待ちます。アップロードするとすぐに公開リンクが取得され、後で投稿を拒否してもファイルは削除されません。
  4. プレビュー。 チャンネルIDと下書きを指定して preview_post を呼び出します。これは無料で、何も公開しません。報告されたすべての問題を修正し、再度プレビューします。
  5. ユーザーに確認する。 最終テキスト、投稿先アカウント、メディア、公開日時を表示します。公開は公開であり、一部のネットワークは投稿を削除できないため、明確な同意を待ちます。
  6. 公開またはスケジュール設定する。 publish_post を呼び出します。scheduledAt: null は今すぐ公開します。UTC ISO-8601タイムスタンプ(例:2026-11-03T07:00:00Z)でスケジュール設定します(将来の日時、最大30日先)。ユーザーの現地時間を自分でUTCに変換し、タイムゾーンなしで時刻が指定された場合は、タイムゾーンを尋ねてください。idempotencyKey(この下書き用の8~128文字の安定した文字列)を設定して、呼び出しが重複しても2回公開されないようにします。
  7. 正直に報告する。 結果はネットワークごとのレシートです。各ネットワークを返されたまま正確に報告します。unknown は、1Socialが投稿が公開されたかどうかを本当に確認できなかったことを意味します。そのように伝え、成功とも失敗とも呼ばないでください。

Instagramのルール

  • すべての投稿には画像または動画が必要です。キャプションのみでは拒否されます。下書きを作成する前に、ユーザーにメディアを尋ねてください。
  • キャプションの制限:2,200文字。最大30個のハッシュタグ。3~5個の関連するハッシュタグが、大量のタグよりも通常は効果的です。
  • 画像のアスペクト比は4:5(ポートレート)から1.91:1(ランドスケープ)の間である必要があります。正方形の1:1は安全です。ワイドバナーはInstagramによって「アスペクト比」エラーで拒否されます。
  • PNGとJPEGの両方が使用できます。
  • スレッドは不可:下書きに複数のセグメントがある場合、1Socialはそれらを1つのキャプションに結合します。代わりに1つのキャプションを作成してください。
  • キャプション内のリンクはInstagramではクリックできません。ユーザーがトラフィックを求めている場合は、生のURLの代わりに「link in bio」という文言を提案してください。
  • 公開されたInstagramの投稿は、1Socialを通じて削除できません。Instagramにはそれを削除するAPIがありません。公開する前にユーザーがキャプションに満足していることを確認してください。

ライティングのヒント

  • 最初の125文字でフックを提示します。それが「もっと見る」の前に表示される部分です。
  • ハッシュタグはキャプションの最後、改行の後に配置します。

他のネットワークにも同時投稿する

同じ1Socialアカウントで、1つの投稿をInstagram、TikTok、LinkedIn、X、Threads、Facebook Pages、YouTube Shorts、Blueskyに同時に公開できます。list_accounts から複数のチャンネルIDをリストアップします。preview_post は選択されたすべてのネットワークに対して下書きをチェックします。

公開後

  • ステータス確認: list_posts(1つの投稿の場合は postId を指定)。ネットワークが報告する場合、保存されたエンゲージメントメトリクスが含まれます。
  • スケジュール済み投稿の変更: update_post。投稿が公開される前にのみ機能します。
  • スケジュール解除: cancel_post。まだ公開されていない投稿には、delete_post ではなくこれを使用します。
  • 公開済み投稿の削除: delete_post。ユーザーが確認した後にのみ実行します。実際に削除されたものをネットワークごとに報告します。Instagram、TikTok、Threads、YouTubeの投稿は公開されたまま残り、ユーザーだけが削除できます。
  • 配信に失敗した場合: retry_delivery は1つのネットワークを再試行し、クォータを再度消費します。接続が取り消されたなどの永続的な障害の場合は拒否されます。その場合、ユーザーは https://1social.dev/app で再接続する必要があります。
  • 配信が unknown の場合: ユーザーにネットワークを確認するよう依頼します。ユーザーから投稿が公開されているかどうかを聞いた場合のみ、その回答で confirm_delivery を呼び出します。決して推測せず、また尋ねずに force 付きで retry_delivery を実行しないでください。2回目のコピーが公開される可能性があります。

関連スキル