Postion
  • 社区动态
  • 定价标准
控制台
登录账号
Discord

基础入门

总览介绍为什么选择 Postion?核心概念快速入门指南搬家与迁移控制台指南新用户必看

创作者专区

站点管理写作与编辑Postion 编辑器品牌与定制化界面风格指南SEO 搜索引擎优化社交分发工作流模板市场商业化变现内容访问与定价订阅模式Stripe 支付接入其他收入来源提现与手续费数据分析高级数据分析邮件营销Stripe 收款设置指南自定义域名设置指南Webhook 集成指南导出数据CRM 粉丝管理CRM 标签指南CRM 客户分群

共建社区

社区准则早期采纳者红利如何参与最佳实践成功案例

技术开发支持

平台架构Postion 底层原理绑定自定义域名Webhooks 钩子公开 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.

版本说明无障碍隐私政策服务条款