ActivityPubプラグイン

5歳児にもわかるように説明していただけますか?

私の組織が Mastodon の https://example.social/@MyOrganization にいる場合

その組織の Mastodon への投稿をすべて表示する Discourse のカテゴリを作成できますか?

https://discourse.example.org//c/fediverse/67

そして、その投稿に対する Mastodon でのインタラクション(「いいね」や返信)は、そのカテゴリの Discourse 投稿に表示されますか?

そして、Discourse でのその投稿に対するインタラクションは Mastodon で表示されますか?

フォローアップの質問をする前に、確認または否定をお待ちしています。

「いいね!」 1

確実なものについては、私が責任を持ちます。

はい、できます。そのカテゴリがMastodonアカウントをフォローします。

返信ははい。お気に入り(スター)はいいえ。なぜなら、その役割はMastodonユーザーにローカルで「いいね」を表示するだけだからです。あなたのカテゴリや、そのユーザー、つまりあなたの組織をフォローしている他の誰も、特定のお気に入りを表示することはありません。

これは現時点での私の問題ですが、カテゴリ内のトピックの下に書かれたコメントはMastodonには移動しません。

しかし、許可すれば、そのカテゴリはMastodonからフォローでき、設定、トピック、投稿によっては、Mastodonで公開されるすべてのものが表示されます。または、トピックの最初の投稿のみが表示されます。リアクションはMastodonには移動しません。

基本的に:

  • カテゴリがMastodonユーザーをフォローする場合:DiscourseはMastodonから取得します
  • Mastodonユーザーがカテゴリをフォローする場合:MastodonはDiscourseから取得します

したがって、強調点は、もちろん単純化された視点ですが、

  • 主な目的がフォーラムユーザーに伝えることで、Mastodonユーザーはフォローしている場合にのみ表示される場合、公開はトピックで行われ、Mastodonユーザーは誰かがそのカテゴリをフォローしている場合、またはActivityPubユーザーとしてそのカテゴリを見つける方法を知っている場合にのみ表示されます。
  • 主な目的がMastodonユーザーに伝えることで、フォーラムユーザーはカテゴリをフォローしている場合に表示され、カテゴリからのフェデレーション参加が不要な場合、そのカテゴリはMastodonユーザーをフォローします。

ほぼ同じことですが、Mastodonでのメッセージの表示方法が異なります。

一つだけ。Mastodonの制限により、事実上すべてのMarkdownタグが表示されるため、例えば太字はMastodonでは表示されず、フォロワーは太字ではなく**太字**と表示されます。タグはどちらにも移動しません。

「いいね!」 2

Discourseのサンドボックスがあります。ベータテスターが必要な場合はお知らせください。

「いいね!」 1

そのアカウントを現在フォローできない理由は、ボットだからです。ボットのフォローサポートはまだ追加していません。

これは、mastodonapp.uk で Mastodon の Authorized fetch が有効になっているためと思われます。明日あたりに再度確認します。

Mastodon でハッシュタグをフォローしても、自分がいるサーバーにあるハッシュタグ付きの投稿しか表示されないことに注意してください。他の Mastodon サーバーにあるハッシュタグ付きの投稿は表示されません。言い換えれば、Mastodon はハッシュタグにプライマリ ActivityPub サポートを追加していません(例えば、Discourse プラグインが Discourse タグに対して行うように、アクターとして作成していません)。ドキュメント と、こちら の議論を参照してください。リレーやポーリングのようなものが必要になるかもしれませんが、それでも可能です。

詳細については、メッセージ自体を共有していただく必要があります(つまり、バックトレースだけでなく)。詳細ログが有効になっている場合、プラグインは受信オブジェクトの処理の失敗をログに記録します。処理の失敗には多くの理由があり、その多くは Discourse とは関係ありません。Fediverse では常に多くのオブジェクトが飛び交っています。これらの処理失敗のログレベルを「info」に変更するかもしれません。なぜなら、ほとんどの場合プラグイン自体の問題ではないのに、プラグインの問題を示唆しているように思えるからです。

はい、Mastodon では返信として表示されるはずです。具体的な例があれば、何が起こったのかを分析し、対処すべきことがあれば対処できます(対処すべきことがあれば)。

はい、それが「Full Topic」設定の仕組みです。さらに詳しくは以下を参照してください。

「いいね!」 1

どのメッセージに関連するものかわかりませんが、そのようなものがたくさん表示されます。しかし、原因を突き止めようとします(詳細なログが有効になっていると確信していますが、私の記憶は非常に信頼性が低いです)。一方で、どこにも奇妙な動作は見られません。

タグ、ボットなど — ありがとう、これで多くのことが説明されました。

どうすればいいですか?なぜなら、それは一部ではなく、すべてで起こっているからです。

編集

これが少しでも役に立つかわかりませんが、その警告の1分前にこれが表示されました。

[Discourse Activity Pub] Failed to process https://mastodon.social/users/fesshole: Object is not supported

それは私がブーストしたメッセージでした。

そして、その警告と同じタイムスタンプでこれが表示されました。

[Discourse Activity Pub] Failed to process https://mastodon.social/users/moa333#delete: Object is not ready

推測するに、後者は handlers::warning に関連しており、どちらも情報提供的なもので、まったく気にする必要はないということでしょうか?

編集2

ええ、問題はHTTP署名でした。プラグインはそれを求めていましたが、私のMastodonはそれを使用していませんでした。両方の端で無効にすると(おそらく両方のサイトで有効にしても同じ結果になるでしょう)、メッセージはあちこちへ移動し始めました。

その設定を使用することの実際の長所と短所をさらに深く掘り下げる必要があります。

正しい方向へ導いてくれてありがとう!

「いいね!」 1

共有してくれてありがとう。私は次の日かその次の日に、Mastodonの承認されたフェッチの文脈で、HTTP署名の実装を再び見直すつもりです。彼らが署名の処理方法を変更したか、私たちの処理を調整する必要があるかもしれません。

Discourse で署名が有効で Mastodon で無効になっている場合、メッセージは Discourse から Mastodon に送信される(署名を使用しないインスタンスのため)が、Mastodon から Discourse には送信されない(フォーラムが HTTP 署名を要求するため)と考えていました(想像レベルであり、事実ではありません)。しかし、実際にはその逆でした。

しかし、Mastodon のアクター(私のアカウント)は Discourse のユーザーに接続されており、私は管理者です。これは何か意味があるのでしょうか?

いずれにせよ、両方とも HTTP 署名を使用していない場合は、期待どおりに動作します。私はそれで構いませんが、開発者であるあなたにとっては別の話かもしれません :smirking_face:

HTTP 署名がどれほど強力な有効なメリットをもたらすかはわかりません。ある時点で、それほど遠くない昔、Pixelfed は署名が使用されていたときに Mastodon で問題を抱えていました。そして、サードパーティとして WordPress もあります。

とにかく、話が逸れました。

「いいね!」 1

This account should be discoverable when this is merged and then deployed on your server.

「いいね!」 3

@Jagster このマージが完了すると、あなたの返信はすべてMastodonにも正しく表示されるようになります。

(Mastodon側で一部の処理が調整されました)

「いいね!」 4

これで修正されました @tvavrda。申し訳ありません、手順のステップを見落としていました。

「いいね!」 2

カテゴリ内の peertube アカウントをフォローしようとしていますが、保留中のまま進みません。

ログは以下のとおりです。

https://spectra.video/accounts/spoilerdiacre/inbox への POST リクエストが失敗しました: Expected([200, 201, 202]) <=> Actual(403 Forbidden)
https://community.derpandchill.com/ap/actor/ca233d6f9d47cde558877fb7609a6b3a は https://spectra.video/accounts/spoilerdiacre/inbox に配信できませんでした

複数回試しました。これらは異なりますが、動画をコミュニティに自動投稿できれば嬉しいです。

レポートありがとうございました。今週の後半にさらに詳しく調査します。

Discourse と Mastodon の連携について。理解できていない点、できない点、あるいは期待しすぎている点がいくつかあります。関連リンクをいくつか貼っておきます。内容はフィンランド語ですが、重要ではないと思います。

フォーラムのアクターとブースト

私の理解が正しければ、カテゴリのアクターはトピックをブーストすることで連携しますが、実際のユーザーはアクターであり、現状ではうまくいっていません。つまり、連携の方法はブーストだけということでしょうか?

しかし、これは Mastodon ユーザーがそれをブーストされたものとして見ることになり、元の送信者は、例えば私の @Jagster@foorumi.katiska.eu のようになります。しかし、彼らはブースターのアカウントではなく、元の(私の個人のフォーラムアカウントとしての)アカウントをフォローしますが、承認リクエストが表示されるため、それはできません。したがって、彼らは誰のアカウントもフォローできません。

記事 vs. ノート

何を期待すべきかわかりませんが、これらは逆の動作をしていると思います。

Note フォームを使用すると、Discourse は最初の投稿をそのまま連携します。例:Sokeriton kofeiini voi olla terveellistä - Ihminen, luonto & maailma - Katiskan foorumi (いつものように ActivityPub リンクなども通常通り見つかります。ちなみに、表示される新しい方法は気に入っていますが、完全に使いこなせているわけではありません)

これは「続きを読む」と表示されますが、クリックすると Mastodon でコンテンツが開きます。

こちらが Article です:Onko koiran peitsaaminen aina merkki ongelmasta? - Koiramaailma - Katiskan foorumi
タイトルのみが表示され、そのトピックへのリンクが表示されます。そのため、Mastodon での閲覧は不可能です。

編集:編集後の混乱については申し訳ありません。カテゴリのアクターによるブーストではなく、私のフォーラムのアクターから表示された記事タイプであることに気づきました。 毎回そうなるわけではありません。元のものとブーストされたものの 2 つの異なるものです :man_facepalming: それは良かったのですが、承認の問題で私のフォーラムのアクターをフォローすることは依然として不可能であり、ロックされたアカウントのように動作します。

この(巨大な)トピックを読もうとしましたが、ask.discourse.com にも問い合わせました。記事全体を表示する機能は、コンテンツ自体を表示するのではなく、リンクを介して正確に実現されていますか?もしそうなら、Mastodon には不要です。なぜなら、Mastodon も長いコンテンツを表示できるため、記事ではなくノートを使用します。

ディスカッションの連携

トピックを連携した場合、誰かがそこでコメントすると、そのトピックの下にきれいに表示されます。しかし、フォーラムでそのトピックにコメントした場合、それは連携されますが、カテゴリのアクターによってブーストとして送信されたため、誰もそれをそのトピック(または Mastodon のスレッド)のコメントとして認識しませんか?

これは、(公式の) Mastodon アプリが、すべてのコメントがこのインスタンスにあるわけではない可能性があり、元のインスタンスを開くべきだと表示するような状況でしょうか?そして、誰もそれを実行しません。

これは、フォーラムはすべてを認識していましたが、Mastodon はフォーラムで書かれたコメントを認識しなかった、2 つの独立したディスカッションがあったトピックです:Pikkulasten ruuat? - Retkeily & Melonta - Katiskan foorumi

編集 このトピックは、これを書いている時点で約 5 日前のもので、私のフォーラムユーザーではなく、カテゴリのアクターによってブーストおよび公開されています。それ以降、何かが変更されましたか(はい、ほぼ毎日再構築しています)。

「いいね!」 1

唯一の方法ではありませんが、フォーラム形式のプラットフォームがトピック/スレッドのグループ(特定のタグやカテゴリを持つもの)をフェデレートするために使用する主な方法です。このプロセスは、FEP-1b12と呼ばれるもので説明されており、私たちは他の実装者と共にそれに従い、取り組んでいます。

すみません、何が問題なのかよく理解できません。言い換えていただけますか?

これが起こる理由は、MastodonがArticleの内容の変換を停止し、元のコンテンツへのリンクのみを表示するようになったためです。Fediverseでのフォーラムの台頭(例えば私たち!)を考えると、Mastodonにそのサポートを再追加するための新しいPRを出す時期が来るかもしれません。

はい、Mastodon側で様々な変更があったため、この点に関して最近いくつかの変更がありました。アプローチを洗練していく中で、さらなる変更が予想されます。期待どおりになっていない具体的な例(例:投稿1(Discourse)、返信1(Mastodon)、返信2(Discourse)など)を提示していただけると助かります。

「いいね!」 1

あまり多くの期待はありませんが、いくつか願い事があります😂。それ以外はすべて明確になりましたが、あのブースト/ライターのようなものです。もう問題はないかもしれません。

Mastodonでの表示について話しています。

  • カテゴリのアクターによってブーストされました
  • 元のものはフォーラムの私のユーザーです

フォーラムのアクターをクリックすると、これが表示されました(Monaアプリのスクリーンショットですが、公式PWAも同様に表示されました。それが方法です)。

あの赤いアイコンはフォローリクエストで、鍵付きプロフィールと同じです。

その後、再構築しました。

これで公式PWAは期待どおりに表示されます。

しかし、Monaはまだあの赤いアイコンを表示しています。

何らかの理由で、私や他の誰も、あのせいで私のフォーラムのアクターをフォローできませんでした。しかし、それは(2つのシステム間の奇妙な問題で🤷‍♂️)修正されました。そして現在使用しているmastodon-appはコンテンツを更新しません—しかし、それは決してあなたの頭痛の種ではありません。

したがって、この投稿は単に…何か😂を示すための情報提供でした。

「いいね!」 1

ちょっとした機能要望です。ActivityPubアクタから投稿があった場合に、グラフィカルなインジケーターを表示することは可能でしょうか?メールを使用している場合に封筒アイコンが表示されるのと同様に。

その理由は、ローカルフォーラムユーザーとMastodonユーザーの違いがユーザーに分からないためです。

なぜそれらを知る必要があるのか?私にも分かりません。人々はそのように行動するだけで、私は彼らを落ち着かせたいのです。また、メールも表示していますが、これも必要なかったり、まったく重要な詳細ではありません。

リモートアクターからの投稿であることを示すインジケーターがあります。それは青いAPアイコンで、投稿日の横にあるメールアイコンと全く同じ場所にあります。

それは返信用のものです。OP(元の投稿者)については、青い同じアイコンに加えて、トピックマップのすぐ下に詳細が表示されます。

「いいね!」 1

それを聞いて、違いがほとんどわかりました😂

それらの色をよりはっきりと変更するCSSを覚えていますか?

編集

それらの2つの色を変更する簡単な方法もありますが、私のプロフィールに書かれているように、私は単なるコピペ屋です。そのため、ソースからこれを借用しました。

実際のところ、それらの三次色などが何であるかを全く理解していないため、基本的なウェブカラーを使用しました。

.activity-pub-topic-status,
.activity-pub-post-status {

  &.published .d-icon-discourse-activity-pub,
  &.updated .d-icon-discourse-activity-pub {
    color: #808080;
  }
  &.published-remote .d-icon-discourse-activity-pub {
    color: #008000;
  }
}
「いいね!」 2

編集

以下の問題は、@a.gup.pe ユーザーに関連しています。すべてのフェデレーションカテゴリがユーザー @koirat@a.gup.pe を見つけ、フォローすると「待機中」と表示されます。ページを変更して戻ると、フォローが消えているだけで何も表示されません。

ただし、カテゴリは実在の人間をフォローできます。

そのアクターは事実上ボットであり、Discourse はボットをフォローできません。しかし、私の知る限り、それはボットであると自己識別していません。また、たとえそれが問題であったとしても(それは単語なのかしら?:flushed_face:)、Discourse はそもそも私にフォローを許可すべきではありません(Discourse がその時点でそれを知らない場合を除きます)。いずれにせよ、通知なしにフォローを終了すべきではありません。あるいは、終了したのでしょうか…ログを確認していません、私のミスです。

編集2

見つかったのはこれだけです。

https://a.gup.pe/u/koirat/inbox への配信失敗
[Discourse Activity Pub] https://foorumi.katiska.eu/ap/actor/b37cda0cddecb02465691872595307dd は https://a.gup.pe/u/koirat/inbox への配信に失敗しました
--- !ruby/hash:ActiveSupport::HashWithIndifferentAccess
id: https://foorumi.katiska.eu/ap/activity/e05428a3d5d0d9637c8b191bc4556063
type: Follow
to: https://a.gup.pe/u/koirat
published: '2025-02-23T07:11:19Z'
updated: '2025-02-23T07:11:19Z'
actor: !ruby/hash:ActiveSupport::HashWithIndifferentAccess
  id: https://foorumi.katiska.eu/ap/actor/b37cda0cddecb02465691872595307dd
  type: Group
  updated: '2025-02-20T08:03:45Z'
  url: https://foorumi.katiska.eu/c/koiramaailma/33
  name: 'Katiska.eu: koiramaailma'
  inbox: https://foorumi.katiska.eu/ap/actor/b37cda0cddecb02465691872595307dd/inbox
  outbox: https://foorumi.katiska.eu/ap/actor/b37cda0cddecb02465691872595307dd/outbox
  followers: https://foorumi.katiska.eu/ap/actor/b37cda0cddecb02465691872595307dd/followers
  preferredUsername: koiramaailma
  publicKey: !ruby/hash:ActiveSupport::HashWithIndifferentAccess
    id: https://foorumi.katiska.eu/ap/actor/b37cda0cddecb02465691872595307dd#main-key
    owner: https://foorumi.katiska.eu/ap/actor/b37cda0cddecb02465691872595307dd
    publicKeyPem: |
      -----BEGIN PUBLIC KEY-----
     (これは関係ないと思いますが。スペースを取っているだけです)
      -----END PUBLIC KEY-----
  icon: !ruby/hash:ActiveSupport::HashWithIndifferentAccess
    type: Image
    mediaType: image/png
    url: https://cdnfoorumi.katiska.eu/original/1X/c51c0a678551648d73e3f8729ec95ecd1fc0bb73.png
  "@context": https://www.w3.org/ns/activitystreams
"@context": https://www.w3.org/ns/activity...

Webfinger検索 では a.gup.pe ユーザーが見つかるので、それが理由ではないはずです。


これはエッジケースですか、それともまた何かおかしなことをしようとしていますか?

Discourse は Mastodon のリストをフォローできません(そしてそれらは Mastodon でも独自の問題を抱えています)。そこで、代わりに a.gup.pe の「疑似ユーザー」を試しました。

同じユーザーを私のインスタンスでフォローすることで @koirat@a.gup.pe を作成しました。これは #koirat タグ(ちなみにフィンランド語で犬)が使用されているトゥートを収集します。これはうまくいきました。

次に、Mastodon からメッセージを送信したところ、タグとユーザーの両方が言及されました。それは、guppe ユーザーをフォローしているリストに表示されました。

私の Discourse で、カテゴリ X にユーザー @koirat@a.gup.pe をフォローするように依頼しました。別のカテゴリ Y は私の俳優 @jagster@kvarkki.nexus をフォローしており、それは「待機中」の状態でした。そのため、メッセージが 2 回届くことを期待していました。1 回は私から、もう 1 回は guppe 経由で(ああ、なんてこった、それが問題なのかしら :thinking:)。

私の俳優によって送信されたメッセージは、予想どおりカテゴリ Y で公開されました。カテゴリ X は guppe 俳優によって何も配信されませんでした。

カテゴリ X のフェデレーションを開いたとき、それはもはや @koirat@a.gup.pe をフォローしていませんでした。

したがって、推測されることは次のとおりです。

  • @a.gup.pe は異なる方法で機能しており、Discourse はそれを理解できません。
  • Mastodon から 2 つの同一のトピックを公開しようとしました(これは簡単に試すことができます、数分かかります)。

これは純粋に学術的な問題ではありません。なぜなら、それは Mastodon のリストの問題を解決する可能性があるからです。

Discourse が a.gup.pe/u/koirat/inbox にフォローを送信しようとすると、500 の内部サーバーエラーが返されるため、機能していません。

HTTP/1.1 500 Internal Server Error\r\n

つまり、Guppe にバグがあるということです。

Discourse のグループに対する集合的な Fediverse アプローチは、現在多少進化していることに注意してください。NodeBB、Wordpress、Mastodon などの関係者と、現在、これやその他の関連問題について話し合っています。たとえば、次を参照してください。

Guppe が直面するもう 1 つの問題は、Mastodon 自体が「グループ」機能をしばらくの間開発しており、これが Guppe のアプローチと競合する可能性があることです。

「いいね!」 4