WordPressのコメントからハッシュタグをピックアップして、ap_outboxのpost_contentのtag配列("tag":[])に入れて、ついでにリンクにするフィルターフックを作成したのだが、そのコードのせいで、返信先に通知が届かなくなっていた。
今はコードを修正してあるが、このバグのおかげで、通知先もtag配列("tag":[])に入っていることが分かった。例えば、次のように「"type":"Mention"」として入っている。ハッシュタグは「"type":"Hashtag"」である。
"tag":[{"type":"Mention","href":"https://mastodon.social/@ishii00141","name":"@ishii00141@mastodon.social"},{"type":"Hashtag","href":"https://ishii00141.stars.ne.jp/tag/WordPress/","name":"#WordPress"},{"type":"Hashtag","href":"https://ishii00141.stars.ne.jp/tag/ActivityPub/","name":"#ActivityPub"},{"type":"Hashtag","href":"https://ishii00141.stars.ne.jp/tag/hashtag/","name":"#hashtag"}],
私はずっと "cc":[] が通知先を決めているのだと思っていた。しかし、違ったらしい。
"to":["https://www.w3.org/ns/activitystreams#Public"],"cc":["https://ishii00141.stars.ne.jp/wp-json/activitypub/1.0/actors/0/followers","https://mastodon.social/@ishii00141","https://mastodon.social/users/ishii00141"],
また、これまで、コメント欄にメンションを書かなくても通知が届くことは知っていたが、fedibirdだけはメンションを書かないと通知が届かなかった。しかし、今ではfedibirdでもメンションを書かなくても通知が届くようになった。ただし、直接の返信の場合に限りそうだ。さらに、コメントの入力欄にメンションを書かなくても、プラグインActivityPubがFediverseへの送信時にメンションを自動的に追加していたのだが、それもなくなった。fedibirdはプラグインActivityPubがメンションを追加しても通知が届かず、手動でメンションを書く必要があったので、そのせいでfedibirdのアカウント宛にはメンションが二つも付くような状態になっていたのだが、それは避けられるようになった。プラグインActivityPubが自動で追加するメンションは邪魔なので追加しないフィルターフックを使っていたのだが、それも必要なくなった。
ただ、スレッド内のアカウント全部に通知を届けようとする仕様は変わっていない。次の送信データは、私のコメント#comment-1350へのコメント#comment-1353である。そのコメント#comment-1350は「ひとりネズミ」のコメントへのコメントであり、その「ひとりネズミ」のコメントはmastodon.socialの「いしい」のコメントへのコメントである。すなわち、直接の返信先ではないアカウント、これまでのスレッド内に含まれていたアカウントに対しても通知を送ろうとしている。ただし、fedibirdのアカウントに対しては、コメント本文にメンションを書かないと通知は届かなかった(#comment-1355)。mastodon.socialにはメンションを書かなくても通知が届いた。
"inReplyTo":"https://ishii00141.stars.ne.jp/?c=1350","published":"2026-01-18T09:25:26Z","tag":[{"type":"Mention","href":"https://fedibird.com/@hitorinezumi","name":"@hitorinezumi@fedibird.com"},{"type":"Mention","href":"https://mastodon.social/@ishii00141","name":"@ishii00141@mastodon.social"},{"type":"Hashtag","href":"https://ishii00141.stars.ne.jp/tag/WordPress/","name":"#WordPress"},{"type":"Hashtag","href":"https://ishii00141.stars.ne.jp/tag/ActivityPub/","name":"#ActivityPub"},{"type":"Hashtag","href":"https://ishii00141.stars.ne.jp/tag/Mention/","name":"#Mention"}],"url":"https://ishii00141.stars.ne.jp/?c=1353","to":["https://www.w3.org/ns/activitystreams#Public"],"cc":["https://ishii00141.stars.ne.jp/wp-json/activitypub/1.0/actors/0/followers","https://fedibird.com/@hitorinezumi","https://mastodon.social/@ishii00141","https://ishii00141.stars.ne.jp/?author=0"],
同じスレッドの全てのアカウントに通知を届けるのが良いことかどうかは微妙である。私の場合、自分の投稿の後にどのような議論が行われていたのか知りたい気持ちもありつつ、その量が多くて興味がなくなると「もう通知しないでくれ」とも思う。直接の返信でないとtagに含まれていてもメンションを直接書かない限り通知が届かない、fedibirdの仕様の方が良いかもしれない。ただ、WordPressの場合、途中でコメントできなくなるので延々と通知が届くことはないはずなので、スレッドの全てのアカウントに通知が届いても良いかもしれない。
それはともかく、直接の返信であれば、メンションを書かなくても通知は届き、メンションを書いても、ap_outboxの"tag"にそのメンションが含まれていなければ、通知は届かないらしい。以前からそうだったのか、仕様変更があったのかは分からないが、これまでと違う動作になっていそうなことは分かった。
最後に、直接の返信であれば、メンションを書かなくても相手に届く仕様で、メンションを書く必要性をGeminiに尋ねてみた。

マストドンではメンションを書かなくても返信することができて通知も届くようです。返信時にメンションを書く必要性は何でしょうか?
マストドン(Mastodon)の仕様に気づかれましたね。おっしゃる通り、現在のマストドン(および多くの分散型SNS)では、返信ボタン(リプライ)を押して投稿すれば、明示的に「@ユーザー名」を書かなくても相手に通知が届くようになっています。
かつてのTwitterの習慣で「@」を入れがちですが、あえてメンションを残す、あるいは消すことには以下のような意味があります。
1. 誰に宛てたメッセージかを明確にする(可読性)
複数の人が会話に参加しているスレッドの場合、本文にメンションがないと「誰に対する返答か」がパッと見て分かりにくいことがあります。
- メンションあり: 「@Aさん その通りですね!」(Aさんへの同意だとすぐわかる)
- メンションなし: 「その通りですね!」(ツリーを辿らないと誰への言葉か不明瞭)
2. 会話に「巻き込む」人を制御する
返信の際に、元々の会話にいた他のユーザーのメンションをあえて残す(または追加する)ことで、**「この会話に参加し続けてほしい」**という合図になります。
逆に、特定の誰かとの1対1の話に切り替えたい場合は、他の人のメンションを削ることで、その人たちへの不要な通知を止めることができます。
3. メッセージの公開範囲(重要!)
マストドンの仕様として、**「投稿の公開範囲」**とメンションは密接に関係しています。
- ダイレクト(特定の相手のみ): 宛先としてメンションが含まれていないと、そもそも相手に届かない、あるいは誰にも見えない投稿になるリスクがあります。
- 未収載・公開: メンションがなくてもリプライ機能で繋がっていれば通知は行きますが、メンションを入れることで「これはあなたに向けた公式な発言ですよ」というニュアンスを強調できます。
4. 外部ツールや古いクライアントへの配慮
マストドンを閲覧するアプリ(クライアント)によっては、本文内に「@」が含まれていないと、返信として正しく強調表示されない、あるいは通知の優先度が下がるといった挙動をするものがあります。そのため、互換性のために残すという文化もあります。
結論:書かなくてもいいが「マナーや整理」のために使う
最近のトレンドとしては、**「本文がスッキリするので、リプライ機能が動いているならメンションは消す」**というスタイルも増えています。
- メンションを残すべき時: 複数人での会話、相手を強調したい時、確実に気づいてほしい時。
- メンションを消してもいい時: 1対1の親しい会話、本文を短くまとめたい時。
マストドンの設定やアプリによっては、「返信時に自動でメンションを挿入するかどうか」を選べるものもあります。
もしよろしければ、お使いのアプリで「返信時のメンションを自動で消す設定」があるかお調べしましょうか?



コメント
<code>の中のメンションもピックアップされたらしい。通知が届いた。
スレッド内の全てのアカウントに通知が届くのを避けるため、コメント本文にメンションがないアカウントには通知を送らないようにするコードが作れそうだが、そうすると直接の返信でメンションがない場合にも通知が届かなくなるから、却下。
#WordPress #プラグイン #ActivityPub #Mention