ブログ

· 1分で読めます

自前で作るか、APIを使うか。「SNSに投稿」機能の本当のコスト

プロダクトにSNS投稿を自前で組み込む場合と、ソーシャルメディアAPIを使う場合を、作業項目ごとに比べます。

チケットには、こう書いてあります。「ユーザーがXとLinkedInにシェアできるようにする。」 見た目は1スプリントです。その下に実際にあるものを並べて、見積もりが崩れないようにします。

順調なときの経路(誰もが見積もる部分)

  • 各プラットフォームで開発者アプリを登録する
  • それぞれにOAuthを実装する
  • 各プラットフォームの「投稿を作成」エンドポイントを呼ぶ

プラットフォームあたり数日です。仕事がここまでなら、自前で作ってよいでしょう。

そのあと(見積もりを膨らませる部分)

作業項目必要な理由継続するか
トークンの保存と暗号化セキュリティ審査では、顧客のトークンをどこに置くかを聞かれますはい
プラットフォームごとのトークン更新有効期限も更新のルールも、ネットワークごとに違いますはい
プラットフォームごとの本文検証文字数、メディアの種類、サイズ、カルーセルの枚数はすべて異なりますはい。制限は変わります
メディアのアップロード処理画像と動画で、アップロードの流れがプラットフォームごとに違いますはい
予約投稿の基盤多くのプロダクトには「あとで投稿」が必要で、ネイティブ対応はばらつきますはい
リトライと冪等性再送したリクエストが、顧客の告知を二重投稿してはいけません—
失敗の通知投稿が出なかったことと、その理由をユーザーは知る必要があります—
連携解除の扱いユーザーがアクセスを取り消したら、UIはそれに気づく必要がありますはい
レート制限とバックオフプラットフォームごと、ときにはユーザーごとに違いますはい
プラットフォームAPIの変更エンドポイントは廃止され、ポリシーやティアも変わります終わりません

高いのは最後の行です。SNSのAPIは、こちらの予定ではなく、相手の予定で変わります。変更のたびに、ロードマップから予定外の作業が引き抜かれます。

先に聞くべきこと

  1. SNS投稿はプロダクトそのものですか。それとも、その中の一機能ですか。 売っているものの中心なら、基盤を自前で持つ価値があるかもしれません。一機能なら、トークン更新に使った1時間は、顧客がお金を払う部分に使わなかった1時間です。
  2. ユーザーは、いくつのプラットフォームを求めてきますか。 最初の2つで終わることはありません。
  3. 午前2時にLinkedInが投稿を拒んだとき、誰が対応しますか。

Hapiを使うと、買う側はこうなります

bash
curl -X POST https://hapi.tools/v1/posts \
  -H "Authorization: Bearer $HAPI_API_KEY" \
  -d '{"content":"Shipped!","platforms":["x","linkedin"]}'

この1回の呼び出しの裏側には、次のものがあります。

  • ホスト型のOAuth(PKCE)。トークンはAES-256-GCMで暗号化され、更新もこちらで行います。
  • 実際のプラットフォーム制限に対する検証。投稿を受け付ける前に行います。
  • タイムゾーンに対応した予約投稿。
  • 冪等キー。リトライしても二重投稿しません。
  • 署名付きWebhook(post.published、post.failed、account.disconnected)。再送は6回までです。
  • スコープ付きAPIキー、監査ログ、チーム向けのロールベースアクセス。

いま本番で使えるのはX、LinkedIn、Bluesky、Telegram、Discord、Slackです。Instagram、TikTok、YouTubeともう7つはサンドボックスで使えるので、公開を待たずに実装を進められます。

コストの比較

上の表に、エンジニアの時間の単価を乗せてください。「終わりません」の行も含めて、次と比べます。

  • Trial: 15日間 $5(アカウント5件、投稿300件)。機能全体を作り、デモする分には足ります。
  • Growth: 月額 $49、年払いは月額 $39。アカウント25件、月5,000投稿、Webhook、毎分300リクエスト。
  • Pro: 月額 $99、年払いは月額 $79。アカウント100件、月25,000投稿、毎分1,200リクエスト。
  • Scale: 月額 $199から。アカウント250件と投稿100,000件が含まれ、それを超えた分は従量です。SSOとSLAもあります。

料金を見る → または トライアルを始める →