はじめに
WordPressの更新通知をMisskey(Fediverse)へ自動連携する際、ActivityPubプラグインの導入で以下のようなトラブルに直面することがあります。
- NginxやWAFによるセキュリティ制限(/wp-json/ の外部遮断など)に阻まれる
- 相互通信時のタイムアウト(cURL error 28)が発生する
- 連携のためだけにセキュリティ設定を緩めたくない
単方向の「更新通知の自動投稿」が目的であれば、ActivityPubプロトコルに固執せず、WordPressのアウトバウンドWebhookとiPaaS(Pipedream)を経由してMisskey APIを叩く構成が最も安全かつ確実です。
全体アーキテクチャ【WordPress】
│ (記事公開イベント検知)
▼
[プラグイン: WP Webhooks]
│ HTTP POST (アウトバウンド送信)
▼
【Pipedream】
│ データ抽出・整形 (タイトル / URL)
▼
[Misskey API] (https://misskey.instance/api/notes/create)
│ ノート作成
▼
【Misskeyタイムライン】
-
メリット:
サーバー側のインバウンドアクセス制限(REST API遮断、IP制限など)を一切変更せずに導入可能。
構築手順の概要
- WordPress側:WP Webhooksの導入
- プラグイン WP Webhooks をインストール・有効化。
- 設定 > WP Webhooks > Send Data を開く。
- Post created トリガーを展開し、Pipedream側で発行するWebhook URLの登録準備をする。
- Pipedream側:WebhookトリガーとAPIアクションの作成
- Pipedreamで新規ワークフローを作成し、トリガーに HTTP / Webhook を選択。
- 発行された一意の Webhook URL をコピーし、WordPress側の WP Webhooks(Post created)に貼り付けて保存。
- WordPress側でテスト記事を1件公開し、Pipedream側でスキーマ(body.post.post_title, body.post.guid など)をキャプチャ。
- アクションに Send any HTTP Request を追加。
- Method: POST
- URL: https://<あなたのMisskeyインスタンス>/api/notes/create
- Headers: Content-Type: application/json
- Misskey側:アクセストークンの発行
- Misskeyの 設定 > サービス連携 > アクセストークンを発行 を開く。
- 権限として 「ノートを作成・削除する (notes:write)」 のみにチェックを入れてトークンを生成・控える。
- Pipedreamでのペイロード組み立てとデプロイ
- HTTP RequestアクションのBody設定(Key-Value形式)でパラメータを定義:
Key Value i Misskeyで発行したアクセストークン text 新しい記事を公開しました!\n{{steps.trigger.event.body.post.post_title}}\n{{steps.trigger.event.body.post.guid}} - Test を実行し、Misskey上で正常にノートが生成されることを確認。
- ワークフローを Deploy して本番稼働。
- HTTP RequestアクションのBody設定(Key-Value形式)でパラメータを定義:
まとめ
ActivityPubの双方向プロトコルを無理に通すためにWebサーバーの防御網を崩す必要はありません。「アウトバウンドWebhook + クラウド中継」に切り替えることで、Nginxの強固なセキュリティを維持したまま、保守性の高いSNS自動通知パイプラインが完成します。
より詳しい設定画面やパラメータ仕様について
各UIの操作手順や変数のマッピング設定、エラー時のトラブルシュートログについてはブログ本編にて詳しく解説しています。
環境構築時のリファレンスとしてご活用ください。
👉 ブログ本編はこちら:
Nginx環境のWordPressからMisskeyへ!挫折しないWebhook自動投稿の構築ガイド