Orshot ソーシャルメディアスケジューラー:レンダリング、投稿、スケジュール、学習
Orshotは、テンプレートから画像、カルーセル、動画をレンダリングし、13以上のプラットフォームに一度のリクエストで投稿します。また、下書きの保持、スケジュール設定、編集、分析レポートの提供も行うため、エージェントは追加ツールなしでコンテンツカレンダー全体を管理できます。公開メディアURLを添付することもできるため、他のツールで作成した画像でも利用可能です。
対応プラットフォーム:X(Twitter)、Instagram、Facebook、LinkedIn(プロフィールとページ)、TikTok、YouTube、Pinterest、Reddit、Bluesky、Threads、Telegram、Snapchat、Google Business。
ステップ1:Orshot MCPサーバーに接続
これが全ての前提です。MCPルートはキーの貼り付けが不要で、全ての投稿をビジュアルカードで表示し、エージェントから利用する際はこちらを使用します。
openclaw mcp add orshot --url https://mcp.orshot.com/mcp --transport streamable-http --auth oauth
openclaw mcp login orshot
Claude Code:claude mcp add --transport http orshot https://mcp.orshot.com/mcp。他のMCPクライアントも同じURLを使用します。
ヘッドレスジョブのみ(cron、n8n、サーバースクリプト):export ORSHOT_API_KEY=... を設定し、Authorization: Bearer $ORSHOT_API_KEY でRESTを呼び出します。
ステップ2:接続済みアカウントを確認
orshot_list_social_accounts # MCP
GET /v1/social/accounts?include_health=true # REST
# [{ "id": 1, "platform": "linkedin", "account_name": "Acme", "account_username": "acme", "health": { "status": "ok" } }]
アカウントがリストされていれば投稿できます。各アカウントの数値 id と、再接続が必要なことを示す health フラグに注意してください。
リストが空の場合、人間がまだアカウントを接続する必要があります。 APIはアカウントを接続できません。ユーザーをOrshotダッシュボード(ワークスペース > ソーシャル > アカウント:https://orshot.com/dashboard のワークスペースのソーシャルセクション)に誘導してください。各プラットフォームは独自のOAuthログインで接続します。ソーシャルパブリッシングは有料プランのアドオンで、接続アカウント1つあたり月額$12、投稿ごとの追加クレジットはありません。無料プランではアカウントを接続できません。プランとアドオンは https://orshot.com/pricing をご覧ください。これを一度だけ簡潔に伝え、ユーザーが戻ってくるのを待ってください。次の orshot_list_social_accounts 呼び出しで新しいアカウントが表示されます。
コアワークフロー
- 接続し、アカウントをリストする(上記)。
- メディアを決定する。 テンプレートからレンダリングする(
templateId+modifications)か、既存のmedia_urlを使用する。 - まず下書きを作成する。 ユーザーが明確に今すぐ投稿すると言わない限り、
status: "draft"で投稿を作成する。 - ユーザーに表示する プレビュー、キャプション、アカウント、時間。MCP経由では
orshot_get_social_postがビジュアルカードをレンダリングする。 - 変更点を編集 し(
orshot_update_social_post)、公開 する(orshot_publish_social_draft)か スケジュール する(status: "scheduled"+scheduled_for)。 - 非同期プラットフォーム(Instagram、TikTok)の完了後、ステータスを確認する:
processingがpublishedまたはfailedになる。 - 1日後に分析を読み取り、次のスケジュール前に最適な投稿時間のインサイトを確認する。
MCPツールマップ
| ジョブ | ツール |
|---|---|
| アカウント一覧 | orshot_list_social_accounts |
| レンダリング+投稿を1回で | orshot_render_template(publish 付き) |
| メディアURLを投稿 | orshot_publish_social_post |
| 投稿の一覧/表示 | orshot_list_social_posts、orshot_get_social_post(ビジュアルカード) |
| 編集/送信/破棄 | orshot_update_social_post、orshot_publish_social_draft、orshot_discard_social_post |
| 分析 | orshot_get_social_analytics、orshot_get_social_analytics_daily、orshot_get_social_followers、orshot_get_social_post_analytics |
| 最適な投稿時間 | orshot_get_best_time_to_post |
MCPサーバーは、明示的な実行許可がない限り、デフォルトで status: "draft" になります。このまま維持してください。
必須の呼び出し
1回の呼び出しでレンダリングと投稿(または下書き、スケジュール)
MCP経由では、同じ publish オブジェクトを指定して orshot_render_template を使用します。
await fetch("https://api.orshot.com/v1/studio/render", {
method: "POST",
headers: { "Content-Type": "application/json", Authorization: `Bearer ${apiKey}` },
body: JSON.stringify({
templateId: 123,
modifications: { headline: "出荷日", stat: "2,000 レンダリング" },
response: { type: "url", format: "png" },
publish: {
accounts: [1, 3],
content: "最大5000文字のキャプション",
status: "scheduled", // published | draft | scheduled
scheduled_for: "2026-11-01T14:00:00Z",
timezone: "America/New_York",
platformOptions: {
"3": { firstComment: "https://orshot.com", disableLinkPreview: true }, // LinkedIn
},
},
}),
});
マルチページテンプレートは、対応プラットフォームでカルーセルとして公開されます。レスポンスには data.content(レンダリング結果)と、アカウントごとのエントリを含む publish[] が含まれます。
既存のメディアを投稿する
orshot_publish_social_post、または:
curl -s -X POST https://api.orshot.com/v1/social/publish \
-H "Authorization: Bearer $ORSHOT_API_KEY" -H "Content-Type: application/json" \
-d '{
"accounts": [2],
"content": "誰も教えてくれない6つのこと",
"media_urls": ["https://.../1.png", "https://.../2.png", "https://.../3.png"],
"status": "draft",
"tiktokSettings": { "autoAddMusic": true }
}'
| フィールド | 備考 |
|---|---|
accounts | 必須、数値ID |
content | キャプション、最大5000文字 |
media_url / media_urls | 1つまたは複数の公開URL。複数 = カルーセル |
status | published(RESTのデフォルト)、draft、scheduled |
scheduled_for | ISO 8601形式、少なくとも60秒先、scheduled の場合のみ |
timezone | IANAタイムゾーン名 |
platformOptions | アカウントIDごと:LinkedIn firstComment、disableLinkPreview;Pinterest title、link |
tiktokSettings.autoAddMusic | ルートレベル、TikTok写真カルーセル |
レスポンス:{ post_id, status, platforms: [{ account_id, platform, status, url, error, action }] }。status は published、scheduled、drafted、partial、processing、failed のいずれかです。action: "reconnect" は、人間がダッシュボードでそのアカウントを再接続する必要があることを意味します。
保留中の投稿を管理する
GET /v1/social/posts?status=draft&limit=25 # 他にも scheduled | published | processing | partial | failed、platform=、account_id=、cursor=
GET /v1/social/posts/:id
PATCH /v1/social/posts/:id # content、media_urls、accounts、status(draft | scheduled)、scheduled_for、timezone、platformOptions
POST /v1/social/posts/:id/publish # 保留中の投稿を今すぐ送信
POST /v1/social/posts/:id/sync # プロバイダーステータスを更新
DELETE /v1/social/posts/:id # 破棄。いずれかのアカウントで公開された後は拒否されます
各投稿の is_editable と is_discardable は、まだ何が許可されているかを示します。編集は再レンダリングを行わず、コストもかかりません。
分析
GET /v1/social/analytics?platform=linkedin&source=orshot # 投稿ごと:インプレッション、エンゲージメント、クリック、率;アカウントごとのフォロワー
GET /v1/social/analytics/daily?from=2026-10-01&to=2026-10-21 # 日ごと
GET /v1/social/analytics/accounts?from=2026-09-01 # アカウントごとのフォロワー履歴と成長
GET /v1/social/analytics/insights?platform=instagram # 最適な曜日・時間帯(UTC)、頻度対エンゲージメント、減衰
source は all、orshot、external(プラットフォームから同期された投稿。初日から履歴あり)です。refresh=1 でキャッシュをバイパスします。分析リクエストは1分あたり10回までです。インサイトには投稿履歴が必要なため、新しいアカウントでは空のスロットが返されます。
一般的なパターン
パターン1:下書きとしての週間コンテンツカレンダー
1つのテンプレートから異なる modifications で7つの投稿をレンダリングし、それぞれを status: "draft" で作成し、orshot_list_social_posts でユーザーに一覧表示し、承認されたものを公開またはスケジュールします。キャプションや時間の変更ごとに1回の更新で済みます。
パターン2:最適な投稿時間にスケジュール
プラットフォームの orshot_get_best_time_to_post を呼び出し、トップスロット(UTC)を取得し、ユーザーのタイムゾーンに変換し、scheduled_for として渡します。スロットが空の場合は、自分で時間を発明するのではなく、ユーザーに時間を尋ねます。
パターン3:クロス投稿、全プラットフォーム、プラットフォーム固有の追加機能
全てのIDを含む1つの accounts 配列。リンクを platformOptions[<linkedin id>].firstComment に、title と link をPinterest用に、tiktokSettings.autoAddMusic をTikTok写真投稿用に設定します。content は対象プラットフォームの最短制限内に収めてください(Xが最も厳しいです)。
パターン4:マルチページテンプレートからのカルーセル
pageN@ キーと publish を追加して、5〜10ページのテンプレートをレンダリングします。Orshotが全てのページをアップロードし、Instagram、LinkedIn、TikTok(フォトモード)、Threads、Blueskyでカルーセルとして投稿します。orshot-carousel スキルには6スライドのフォーミュラがあります。
パターン5:結果から学習する
毎日:source: "orshot" で orshot_get_social_analytics を呼び出し、エンゲージメントで並べ替え、上位4分の1のフックスタイルを保持し、下位4分の1を削除し、来週の下書きを作成します。何を変更したかを記録し、ユーザーがログを読めるようにします。
パターン6:障害からの回復
partial または failed で action: "reconnect" の場合:ユーザーにダッシュボード(ワークスペース > ソーシャル > アカウント)でどのアカウントを再接続すべきかを伝え、投稿を下書きとして保持し、ユーザーの確認後に orshot_publish_social_draft で再試行します。その他の error:そのまま表示し、盲目的に再試行しないでください。
セーフティルール
- その投稿に対する明示的な実行許可なしに公開しないでください。「準備」「下書き」「見せて」は
status: "draft"を意味します。 - 送信前に、正確なアカウント(プラットフォームとユーザー名)、キャプション、時間を繰り返し確認してください。
- ユーザーが破棄を依頼していない投稿を破棄しないでください。
- ユーザーがさらにアカウントを接続することを提案する前に、1アカウントあたり月額$12のアドオンについて一度だけ言及してください。
- RESTでは、APIキーを環境変数に保持してください。決して表示しないでください。
よくある落とし穴
- アカウントIDは数値で、アカウントごとに異なります。 2つのLinkedInアカウントには2つのIDがあります。プラットフォーム名ではなくIDで公開してください。
- PDFはどこにも投稿できません。
png、jpg、webp(または動画プラットフォームの場合はmp4)でレンダリングしてください。 - TikTokとYouTubeは動画を受け付け、単一画像は受け付けません。 TikTokは写真カルーセル(複数画像)を受け付けます。Google Businessは画像のみを受け付けます。
scheduled_forが60秒未満の場合は拒否され、draftまたはpublishedとの併用は無効です。- InstagramとTikTokは非同期で公開されます。
processingは失敗ではありません。報告する前に同期するか、投稿を再読み込みしてください。 - 公開に失敗してもレンダリングは失敗しません。 レンダリングが成功しても
publish[]を読んでください。 - メディアURLは公開されている必要があります。 OrshotのレンダリングURLは公開されています。署名付きURLやlocalhostのURLは公開されていません。
- 5000文字を超えるキャプションは拒否されます。 プラットフォームの制限はさらに低く、Xが最も短いです。
- 分析は全エンドポイントで1分あたり10リクエストに制限されています。
- 無料プランのワークスペースはアカウントを接続できません。
/social/*での403とプランメッセージは、認証バグではなく課金状態を示します。https://orshot.com/pricing を案内してください。
クイックリファレンス
openclaw mcp add orshot --url https://mcp.orshot.com/mcp --transport streamable-http --auth oauth && openclaw mcp login orshot
GET /v1/social/accounts?include_health=true # orshot_list_social_accounts
POST /v1/studio/render # + publish: { accounts, content, status, scheduled_for, timezone, platformOptions, tiktokSettings } orshot_render_template
POST /v1/social/publish # { accounts, content, media_url | media_urls, status, scheduled_for, timezone, platformOptions, tiktokSettings } orshot_publish_social_post
GET /v1/social/posts?status=draft # orshot_list_social_posts
GET /v1/social/posts/:id # orshot_get_social_post
PATCH /v1/social/posts/:id # orshot_update_social_post
POST /v1/social/posts/:id/publish # orshot_publish_social_draft
POST /v1/social/posts/:id/sync
DELETE /v1/social/posts/:id # orshot_discard_social_post
GET /v1/social/analytics # orshot_get_social_analytics
GET /v1/social/analytics/daily?from=&to= # orshot_get_social_analytics_daily
GET /v1/social/analytics/accounts?from= # orshot_get_social_followers
GET /v1/social/analytics/insights?platform= # orshot_get_best_time_to_post
ドキュメント:https://orshot.com/docs/publish/introduction.md、https://orshot.com/docs/api-reference/social-publish.md、https://orshot.com/docs/api-reference/social-posts-list.md。レンダリングの詳細は orshot スキルにあります。