Postion
  • 커뮤니티
  • 요금제
대시보드
로그인
Discord

시작하기

개요소개왜 Postion인가요?핵심 개념빠른 시작 가이드마이그레이션 가이드대시보드 가이드신규 사용자

크리에이터를 위한 안내

사이트 관리작성 및 편집Postion 에디터브랜딩 및 사용자 정의당신의 사이트, 당신의 스타일SEO 및 검색소셜 워크플로우템플릿 마켓플레이스수익 창출콘텐츠 액세스 및 가격 책정구독 모델Stripe 연결기타 수익원지급 및 수수료분석고급 분석이메일 마케팅Stripe Connect 설정 가이드커스텀 도메인 설정 가이드웹훅 통합 가이드데이터 내보내기CRM 팬 관리 가이드CRM 태그 가이드CRM 세그먼트 가이드

커뮤니티

커뮤니티 가이드라인얼리어답터 프로그램참여 방법모범 사례성공 사례

기술

플랫폼 아키텍처Postion 작동 방식사용자 지정 도메인웹훅공개 API 문서저장소 및 할당량

기타

자주 묻는 질문문제 해결
문서
Webhook ドキュメント

Webhook ドキュメント

コンテンツプラットフォームの強力な自動化を実現。Webhook を使って、新規販売や登録などのイベントに対するリアルタイム HTTP リクエストを受信する方法を解説します。

概要

Webhook を使えば、コンテンツプラットフォームに関連する HTTP リクエストを受信できます。特定のイベント(新しい投稿の作成や公開など)が発生すると、設定したエンドポイントにイベントの詳細を含む POST リクエストが送信されます。

Webhooks

はじめに: ダッシュボードで Webhook を作成し、リッスンしたいイベントを選択し、エンドポイント URL を指定してください。すぐにイベントの送信が始まります。

Create Webhook

利用可能なイベント

現在リッスンできる WEBHOOK_EVENTS イベントがあります。以下に各イベントの詳細とデータペイロードの例を示します。

export const WEBHOOK_EVENTS = {
  // 投稿イベント
  POST_CREATED: "post.created",
  POST_PUBLISHED: "post.published",
  POST_DELETED: "post.deleted",
 
  // サイトイベント
  SITE_CREATED: "site.created",
 
  // サブスクリプションイベント
  SUBSCRIPTION_CREATED: "subscription.created",
  SUBSCRIPTION_CANCELLED: "subscription.cancelled",
 
  TEST: "test.event",
} as const

署名の検証

セキュリティを確保するため、Webhook リクエストが本当にプラットフォームからのものかどうかを常に検証してください。各リクエストには検証用の署名が含まれています。

署名ヘッダー

署名は X-Webhook-Signature ヘッダーで送信されます。署名は、Webhook のシークレットキーを使って生のリクエストボディから作成された HMAC-SHA256 ハッシュです。

X-Webhook-Signature: a1b2c3d4e5f6...

検証プロセス

  1. ダッシュボードから Webhook のシークレットキーを取得。
  2. シークレットキーを使って生のリクエストボディの HMAC-SHA256 ハッシュを計算。
  3. 計算したハッシュを X-Webhook-Signature ヘッダーの署名と比較。
  4. タイミング攻撃を防ぐためにタイミングセーフな比較関数を使用。

実装例

異なるプログラミング言語での Webhook の処理と検証のコード例を紹介します。

const crypto = require('crypto');
const express = require('express');
const app = express();
 
app.use(express.json());
 
// ダッシュボードからの Webhook シークレット
const WEBHOOK_SECRET = 'your_webhook_secret_here';
 
function verifySignature(payload, signature) {
  const expectedSignature = crypto
    .createHmac('sha256', WEBHOOK_SECRET)
    .update(payload)
    .digest('hex');
  
  return crypto.timingSafeEqual(
    Buffer.from(signature, 'hex'),
    Buffer.from(expectedSignature, 'hex')
  );
}
 
app.post('/webhook', (req, res) => {
  const signature = req.headers['x-webhook-signature'];
  const payload = JSON.stringify(req.body);
  
  if (!verifySignature(payload, signature)) {
    return res.status(401).send('Invalid signature');
  }
  
  const { event } = req.body;
  
  switch (event.type) {
    case 'post.created':
      console.log('New post created:', event.data.title);
      break;
    // ... 他のイベントを処理
    default:
      console.log('Unhandled event:', event.type);
  }
  
  res.status(200).send('OK');
});
 
app.listen(3000, () => {
  console.log('Webhook server running on port 3000');
});

ペイロードの構造

すべての Webhook ペイロードは標準的な JSON 構造に従います。

標準ペイロード

ルートオブジェクトには、配信に関する詳細、イベントそのもの、トリガーした Webhook の情報が含まれます。

{
  "id": "delivery-uuid",
  "event": {
    "type": "post.created",
    "data": {
      "id": "post_123",
      "title": "My New Post",
      "...": "イベント固有のデータ"
    },
    "timestamp": "2024-01-15T10:30:00Z",
    "site_id": "site_789",
    "user_id": "user_456"
  },
  "webhook": {
    "id": "webhook_abc",
    "name": "My Webhook"
  }
}

ヘッダー

各 Webhook リクエストには以下の標準 HTTP ヘッダーが含まれます:

  • Content-Type: application/json
  • X-Webhook-Signature: [signature]
  • X-Webhook-Event: [event.type]
  • X-Webhook-Delivery: [delivery.id]
  • User-Agent: Position-Webhooks/1.0

ベストプラクティス

Webhook 連携をセキュア、信頼性高く、高パフォーマンスにするためのベストプラクティスです。

セキュリティ

  • 常に Webhook 署名を検証。リクエストが信頼できるソースからのものであることを確認するために不可欠です。
  • HTTPS エンドポイントを使用して、転送中のデータを保護。
  • Webhook シークレットを安全に保管し、定期的なローテーションを検討。

信頼性

  • エンドポイントは正常受信を確認するために HTTP 200 ステータスコードで応答する必要があります。他のステータスコードは失敗とみなされます。
  • エンドポイントを冪等(べきとう)に設計。X-Webhook-Delivery ID を使って重複イベントを検出・処理。
  • 時間のかかるタスクにはキューイングシステムを使用。Webhook を即座に確認(200 レスポンス)し、バックグラウンドでタスクを処理。

パフォーマンス

Webhook リクエストにはできるだけ迅速に応答してください。理想的には数秒以内です。30 秒後にタイムアウトします。 エンドポイントのパフォーマンスと稼働時間を監視し、サービスに影響が出る前に問題をキャッチしましょう。

Postion

마치 여러분의 것처럼 게시하세요 — 실제로 당신의 것이니까요.

TwitterGitHubDiscordDiscordInstagram

탐색

  • 대시보드
  • 커뮤니티
  • 요금제
  • 문서
  • 자주 묻는 질문

회사

  • 변경 내역
  • 로드맵
  • 연락처
  • 채용 정보
  • 블로그

리소스

  • 초대
  • 빠른 시작
  • Postion 소개
  • 대시보드 가이드
  • 공개 API 가이드

지원

  • Postion 정보
  • Discord 참여
  • BuouUI
  • 사이트맵
  • 블로그 RSS

© Postion 2026 — BuouTech Inc.

회사 소개접근성개인정보 처리방침이용약관