WordPressをActivityPubとWebfingerでFediverseに繋げる

こちらは デジタルキューブグループ Advent Calendar 2023 に掲載の12/6分の記事です。

前置き

こんにちは。私はこの秋デジタルキューブに入社しました。研修の一環で自社製品Amimotoを使用したホームページ構築をしています。今回は「WordPressの投稿を、MastodonとMisskeyで見られる設定」に挑戦した話を書きたいと思います。技術者ブログというよりも、読み物として楽しんでいただけたら嬉しいです。よろしくお願いたします。

 

せっかくなら(ドメインも買ったので)記事を人々の目に入るところに流せるようにしたいと思いました。しかし、SNSが主役の時代で個人サイトを見つけてもらえる可能性はものすごく低いです。
話はちょっとずれるのですが、私は一時期とあるファンコミュニティの交流プラットフォームを立ち上げようとしていました。Mastodonのサーバーの立て方、Misskeyのサーバーの立て方などを調べている時に「Fediverse」「ActivityPub」という単語を知り、「WordPressも対応しているらしい」までのちょっとした知識がありました。ActivityPubはこれからThreadsなどに乗り入れできるとのことだったので、今回はActivityPubを使ってみようかと思いました。

インターネットの宇宙へ

実装してみます

手順は以下のブログを参考にしました。検索ワードは「ActivityPub WordPress 実装」「ActivityPub WordPress やり方」など素朴です。

📕 参考ブログ一覧

WordPressの投稿をActivityPub対応させてみた・私のやったこと【Fediverse】(ゆー)
WordPressサイトをMastodon, Misskeyからフォローできるようにしよう ―ActivityPubプラグインを使ってみる―
WordPressブログをActivityPubに対応させる

実装中に出会ったトラブル

1.Webfingerのエラーが消えない

デコピン

Webfingerの設定完了を確認するために、https://webfinger.net/で自分のプロフィールURLや投稿者URLを検索する必要があります。しかし、自分のURLを入れても「null」と出ます。


調べたところ「webfinger.json」という間違った名前のファイルをアップロードしていました。拡張子の無い「webfinger」にすると上手く行きました。「JSONファイルというものがある」というぼんやりした勘違いをしていたことが原因です。

2.WordPressに叱られる

Webfingerも無事開通し、ActivityPubの設定もできました。しかしWordPressがサイトヘルスで「サイトに重大な問題があります」と怒ってしまいました。表示は以下の通りです。

Your author URL https://www.niceparfait.com/?author=1 does not return valid JSON for application/activity+json. Please check if your hosting supports alternate Accept headers

「JSON」と書いてあるから、これはJSONの問題なんだろうなあとうすらぼんやりした理解なので、何をして良いかわかりません。Amimotoサポートに聞いてみたところ、このように回答をいただきました。

現在起きている問題が
「https://www.niceparfait.com/?author=1 にアクセスした際に Accept: application/activity+json っていう HTTP ヘッダが送信されているのにJSON形式のデータが返ってこない。」ということであれば、オリジンサーバに Acceptヘッダが送信されていないことが原因ではないかと思われます。これらのホワイトリストの設定は Amimoto ダッシュボードで変更できるので、HTTP ヘッダのホワイトリストに  Accept を追加して試してみてください。
https://knowledge.amimoto-ami.com/knowledge/managed-cdn-cache

原因は全くの知識不足です。自分では絶対に到達できませんでした。

ここまでを解決したところで、Matodon・Misskeyから私ののプロフィールが表示されました。しかし大きな問題が発生します。

3.MastodonとMisskeyで、ブログをフォローできない

これがやりたかったのに。具体的な現象は以下の通りです。

Mastodon:「フォロー」ボタンを押すと「フォロー解除」状態に変わる(見た目のフォローはできている)が、ページをリロードすると「フォローリクエストの取り消し」と表示が変わる。実際フォローはできていない。

フォローボタンを押した後
ページをリロードした後

Misskey:「niceparfait@www.niceparfait.com」でプロフィールは表示されるが、フォローボタンをクリックすると「処理中」でくるくるアイコンが回ってしまう。フォローはできるが投稿がタイムラインに表示されない
WordPress:Mastodonは、ActivityPubの「フォロワー」欄にユーザーが表示されない。Misskeyではユーザーは表示されるが、ブログを更新してもタイムラインに流れない。

見えるには見える
何も変わらない

この現象、どうやらよくあるようでほぼ迷宮入りだそうです。そんな😢

📗 同じ現象の皆さん

【雑記】WordPressを「ActivityPub」に対応させる(進行中)(桑原 健太郎)

WordPressをActivityPub対応させる(Sophia)

終わりに

頑張ったもののオチとしてはなんだかスッキリしないのですが、自分の手でここまで検証と設定ができたのはとても貴重な経験でした。現象解消までは時間がかかりそうですが、いつかどこかのFediverseでお会いできたら嬉しいです。

🐣 プロフィールURL

https://www.niceparfait.com/archives/author/nicenice

💐 投稿者URL

@nicenice

良いクリスマスを!