なぜ、いわゆるActivityPub連合されたDiscourseスレッドは外部APクライアントからアクセスできないのですか?

https://meta.discourse.org/t/uris-to-the-origin-of-a-thread-that-has-since-been-merged-should-503-to-the-merged-comment/342417?u=rokejulianlockhart(またはhttps://meta.discourse.org/ap/object/bc8f042ccca5ef56734c5f2460aa45cc[1]mastodon.social/search に入力すると、404エラーになります:[2] [3]

これがDiscourseのせいではない場合、これをMastodonに持ち込みます。しかし、私が試した(機能すると期待していた)ほとんどの他のAPプラットフォームは機能しました。


  1. https://meta.discourse.org/t/uris-to-the-origin-of-a-thread-that-has-since-been-merged-should-503-to-the-merged-comment/342417?u=rokejulianlockhart ↩︎

  2. search?q=https%3A%2F%2Fmeta.discourse.org%2Fap%2Fobject%2Fbc8f042ccca5ef56734c5f2460aa45cc ↩︎

  3. search?q=https%3A%2F%2Fmeta.discourse.org%2Ft%2Furis-to-the-origin-of-a-thread-that-has-since-been-merged-should-503-to-the-merged-comment%2F342417%3Fu%3Drokejulianlockhart ↩︎

「いいね!」 1

これも見逃しています。これがないと、あなたのタイムラインにすでにある場合を除き、フェデレーテッド投稿とやり取りするのは難しいか不可能です。

@rokejulianlockhart、ただの好奇心ですが、WP ActivityPubプラグインを使用しているWordPressインスタンスのURLで試したことはありますか?

「いいね!」 1

一体ここで何が起こったのですか?私は以下のように書いたことはありません。

RokeJulianLockhart:

私たちのフォーラムで話し合いましょう。

…そして誰かが私のマークアップをハンマーで叩き壊しました。

「いいね!」 1

おお!彼らは今、連合しています!私はここでそのコメントを投稿しませんでした。[1] 彼らは単に連合においてかなり壊れています:

  1. フォーマットが保持されていません。

  2. 自分の投稿に「いいね!」をすることができます。
    別のドメインに登録されているため、別のユーザーアカウントです。

@icaria36、いいえ。何か知っていますか?


  1. socialhub.activitypub.rocks/t/5123/3 ↩︎

これはWordPressサイトだと思います。最近の記事でテストしたところ、実際にMastodonでURLを見つけることができました:Nature Holds Awe, Man – NHAM Mixtape 11 – NHAM

@icaria36、そうは思いません。DiscourseにはネイティブのAP統合があります。

@rokejulianlockhart あなたがこのトピックを作成した点についてですが、その間、https://meta.discourse.org/t/why-are-supposedly-activitypub-federated-discourse-threads-inaccessible-via-external-ap-clients/356997 はMastodonで見つけることができません。

「いいね!」 1

@icaria36、Discourse がフェデレーションしているため、おそらく Mastodon 側の不具合でしょう。

「いいね!」 1

github.com/mastodon/mastodon/discussions/34600#discussioncomment-13031935 には次のように記載されています。

Discourse AP プラグインは、緑色の ActivityPub ロゴをクリックし、「Note」ボタンをクリックして URL をコピーすると、ActivityPub オブジェクトを利用できるようにします: Why are supposedly ActivityPub-federated Discourse threads inaccessible via external AP clients? - #9 by rokejulianlockhart - Bug - Discourse Meta

Discourse AP は、url リンクが何らかの方法で id に戻るようにする必要があります。できれば、正しい Accept コンテンツネゴシエーションヘッダーを持つリクエストに対するリダイレクト経由で。

したがって、これは一時的に Bug として設定します。 (できません。古すぎます。)

しかし、「Notes」アイコンによって提供されたURLは、たとえばmastodon.social/searchに貼り付けても、何も結果を返しません。

問題は解決していません。

「いいね!」 1

@icaria36、GitHubディスカッションでコメントしてください。他の誰かが応答に異議を唱えることで、私が仲介者であるよりも信頼性が高まります。

「いいね!」 1

そのようです:

「いいね!」 1

いや、結局Discourseのバグのようですね:Posts from Discourse do not resolve via the Search API · Issue #34632 · mastodon/mastodon · GitHub

もう少し調査したところ、Mastodonは以下のAcceptヘッダーでリソースをリクエストします:

Accept: application/activity+json, application/ld+json; profile="https://www.w3.org/ns/activitystreams", text/html;q=0.1

これでDiscourseに問い合わせるとHTTP 400エラーが返ってきます。

text/html;q=0.1を省略するとActivityStreamsオブジェクトが返されます。したがって、これはDiscourseのバグのようです。text/htmlが受け入れられるタイプに含まれていると、常に400エラーを返すようです…

「いいね!」 1

@rokejulianlockhart またはモデレーターの方、この「解決済み」を削除していただけますか?また、Mastodonの Posts from Discourse do not resolve via the Search API · Issue #34632 · mastodon/mastodon · GitHub での評価に基づき、このトピックを Bug に移動(または新しいバグレポートを作成)してください。

「いいね!」 2

Discourse のバグかどうかはわかりません。Mastodon の問題に返信しました。便宜上、ここにクロス投稿します。

このシナリオで 400 を返す理由は、ActivityPub 仕様で それが必要とされるように見える ためです。

POST リクエスト(例:受信トレイへのリクエスト)は、Content-Type が application/ld+json; profile=“ActivityStreams 2.0 Terms” で行われなければなりません。GET リクエスト(3.2 オブジェクトの取得 も参照)は、Accept ヘッダーが application/ld+json; profile=“ActivityStreams 2.0 Terms” である必要があります。

@ClearlyClaire Accept ヘッダーに text/html;q=0.1 を追加する必要がありますか?

「いいね!」 2

これはすぐに解決されます。詳細は以下をご覧ください。

「いいね!」 3