ActivityPubプラグイン

DiscourseでAP投稿を削除すると、Mastodonにコンテンツ削除を送信します。処理するのはMastodon側次第です。これは機能するはずなので、具体的な例をいくつか示していただければ、削除フローが期待どおりに機能していない箇所(Discourse側かMastodon側か)を特定するのに役立ちます。

これは、Mastodonが現在ハンドルの変更を許可していないためです。これが現在発生している問題の根本原因です。私はこの件についてしばらくの間提唱しており、MastodonのPRが保留中です。それがマージされれば、Discourseでハンドルを変更することでこの問題を解決できるようになります。

ハンドルを無効にする利点は、そのハンドルへの着信コンテンツが処理されず、新しいコンテンツが送信されなくなることです。既存のコンテンツをどのように処理するか、また、送信した削除アクティビティをどのように処理するかは、他のプラットフォーム次第です。

承知いたしました。将来的にはこの機能を追加する可能性があります。

「いいね!」 2

それがハンドルで、無効になっていてアクティブではありません:uebergabe@community.uebergabe.de

これで理解しました…テスト投稿をいくつか行いましたが、彼は「uebergabe@community.uebergabe.de」を使用せず、「christian@community.uebergabe.de」を使用して投稿しました。しかし、私はDiscourseでこのアクターを作成したことはありません。
うーん。

これは「Full Post」設定がオンの場合(この場合はオンになっているはずです)に予期される動作です。コンテンツはユーザーのアクター(この場合はあなた)の名前で投稿されます。カテゴリのアクターの名前で投稿したい場合は、「First Post」を使用する必要があります。その場合、各トピックの最初の投稿のみが公開されます。このビデオで「First Post」アプローチの例を見ることができます。

「いいね!」 3

はい、その通りです。助けてくれてありがとう。もちろん、ビデオを見て、いくつかのことが非常に明確になり、設定に役立ちました。ありがとうございます!\nですから、もちろん、私が積極的に作成したことのないこれらの作成されたハンドルを削除することはできません。\n\n考えてみると、気分が良くありません…誰もが私と同じようにそれを使用している場合、決して削除できない個人のコンテンツスニペットが山ほどあります。インターネットが無意味なものになっていくのではないでしょうか、それとも私が間違っていますか?\n\nあなたのせいではありません。ただ、誰もが私のように愚かで、決して削除されないテスト投稿でインターネットを埋め尽くした場合に何が起こるかを理解しようとしているだけです:D

投稿自体は削除できます。投稿を削除すると、Discourse は Mastodon に Delete を送信し、Mastodon はそのコピーを削除するはずです。それでも機能しなかった場合は、投稿を復元してもう一度削除してみてください。これを行う際にログを確認してください。

前述したように、投稿自体は削除できるはずですが、それ以外はあまり心配しないほうがよいでしょう。Mastodon はストリームベースのプラットフォームです。あなたのテスト投稿は、コンテンツのストリームの中で急速に失われます。さらに、その時点であなたの俳優をフォローしていた人は(あなた以外に)いましたか?私は Fediverse に何百ものテスト投稿がありますが、まったく影響はありません :slight_smile:

しかし、投稿の削除を試みた結果を教えてください。

「いいね!」 3

投稿を復元してから、再度削除しました。
Mastodon上では表示されています。クリックすると、Discourse上の削除済み投稿にリダイレクトされます。

なぜニッチなのですか?

私が参加しているDiscourseコミュニティの中で、いくつかのカテゴリをフォローしたいが、Discourse全体のアプリケーションアクターをフォローしたくない、という状況は3つしか思いつきません。

私はRSSリーダーを持っており、RSS経由でサイト全体をフォローしています。ActivityPubは、特に返信において、より良い体験になるでしょう。

アプリケーションアクターは難しいのでしょうか、それとも単に優先度が低いのでしょうか?

インスタンス全体をフォローするということは、そのインスタンスのすべての投稿がマストドンフィードに連続したストリームとして表示されることを意味します。インスタンスの活動があまりない場合を除き、それはニッチなユースケースになると賭けてもいいです。おそらく私の考えは間違っているかもしれませんが、表面上は、それが人気になるとは思えません。

ログを確認しましたか?削除アクティビティがマストドンに送信されていることを確認しましょう。

「いいね!」 1

本当に長い間、トラフィックは少ないものの、確実にアクティブなDiscourseインスタンスがまだ複数存在し、それらには複数のカテゴリがあります。もちろん、metaはこのように小規模なインスタンスではありません。:grin: しかし、私が個人的に管理している3つのDiscourseインスタンスのうち、1つはトラフィックが非常に多いため、そのカテゴリの多くをマストドンフィードに入れることさえしたくありません。そして、トラフィックの量が十分に少ない2つについては、サイト全体をフォローすることを間違いなく好みます。私がメンバーになっている他のインスタンスでも、オプションがあればサイト全体をフォローするでしょう。

優先順位を変更するように求めているのではありません。単に別の視点を共有しているだけです。

「いいね!」 5

これはMetaでアクティブかつ機能しているはずですか?

Preparing your community for behind-the-scenes header changes - Announcements - Discourse Meta にアクセスすると「Bad Request」と表示され、インスタンスから投稿を取得できません。

APオブジェクトへの人間のブラウザからのリクエストは、人間の表示(https://meta.discourse.org/t/preparing-your-community-for-behind-the-scenes-header-changes/316549)にリダイレクトされるべきです。

はい、たとえばあなたがリンクしたトピックでそうです。

それは、いくつかのAPプラットフォームで見られる「機能」(一種の)です。 ActivityPub仕様は次のように提供していることに注意してください。

HTTP GETメソッドは、アクティビティを取得するためにオブジェクトのidプロパティに対してデリファレンスされる場合があります。サーバーは、[RFC7231]で定義されているHTTPコンテンツネゴシエーションを使用して、リクエストに応答して返すデータの種類を選択してもよいですが(MAY)、application/ld+json; profile=\"https://www.w3.org/ns/activitystreams\"に対する応答ではActivityStreamsオブジェクト表現を提示しなければならず(MUST)、application/activity+jsonに対する応答でもActivityStreams表現を提示すべきです(SHOULD)。クライアントは、アクティビティを取得するために、application/ld+json; profile=\"https://www.w3.org/ns/activitystreams\"メディアタイプを指定するAcceptヘッダーを指定しなければなりません(MUST)。

Activity Streams 2.0の「シリアライゼーション」も参照してください。

APプラグインは現在、オブジェクト(つまり、Activity、Noteなど)を取得するために、「application/ld+json」または「application/activity+json」のいずれかのAcceptヘッダーを送信する必要があります。将来的には、あなたが言及しているものをサポートするかもしれませんが、それは特定のプラットフォームの「パワーユーザー」機能のようなものです。

「いいね!」 1

クライアントで投稿を表示しているとき、目立つ「共有」ボタン :arrow_right: 「ブラウザで開く」があり、オブジェクトのURLを開きます :slight_smile:

フェッチエラーページ:

フェッチに関連するログを管理者に要求しましょうか?

なるほど!どちらのクライアントをお使いですか?

オブジェクトIDは、エンドユーザーがクライアントで共有したりコピーしたりできるURLとして使用されるようには設計されていません。アクティビティパブのステータスモーダルで、開発やデバッグの目的で利用できるようにしています。クライアントは、オブジェクトにシリアライズされる url 属性を使用するべきです。例えば、あなたがmastodon.socialでリンクしたトピック(こちら)にアクセスし、トゥートメニューの「ステータスへのリンクをコピー」をクリックすると、メタのトピックへの直接リンクであることがわかります。標準のMastodonでは、URL共有の目的でオブジェクトの url を使用しています :slight_smile:

それは、Acceptヘッダーが設定されていないためでしょう。私は物事を微調整すること(つまり、間違ったヘッダーを持つオブジェクトIDリクエストを、接続されたモデルURLに解決すること)には前向きですが、現時点では、あなたのクライアントを作成している人々が仕様に準拠する必要がある(つまり、ユーザー向けのURLとしてオブジェクトの id の代わりにオブジェクトの url を使用する)と考えています。

私は、発表されて間もなく @feature@meta.discourse.org@announcements@meta.discourse.org を Mastodon でフォローしていましたが、すぐに更新を受け取らなくなりました。プラグインが meta から削除されたためだと思い、肩をすくめてそのままにしていました。

しかし、実際にはまだアクティブなのであれば、social.makerforums.info との連携に何が問題なのか疑問に思っています。:thinking:

サーバーはMastodon(glitch-soc)です。管理者に、関連するログがあるかどうか尋ねました。

どちらのカテゴリのフォロワーリストにもあなたの名前が見当たりません。

プラグインの初期には多くの変更があったため、それらの変更のいずれかでフォローが解除された場合は申し訳ありません。再度フォローを試してみて、どうなるか確認してください。

glitch-socのフォークですか?彼らのコードであなたがスクリーンショットを撮った共有モーダルが見当たりません。しかし、必要であれば、さらに明確にするためにサーバー管理者と協力させていただきます。

Mastodon側でフォロー解除して再フォローしました。これでフィードが変わるか見てみます。

しかし、矛盾点があります。フォロワーリストの表示で、私のハンドル名が間違っており、ドメインの social. が欠けています。

リンクは https://social.makerforums.info/users/mcdanlj となっており、ドメインが正しく含まれていますが、このフォロワーリストに表示されているものを検索やフォローのために入力しようとした人は失敗するでしょう。

Mastodon側でサブドメインをトリミングする場所は見つかりませんでした。

@mcdanlj 良い指摘ありがとうございます。すぐに調査します。

「いいね!」 3

Discourseを3.3.0.beta4から最新のDiscourse 3.3.0.beta5-devにアップグレードし、同時にActivityPubプラグイン Allow changes of post owner on unpublished local topics (#109) · discourse/discourse-activity-pub@3a6512d · GitHub も更新しました。

プラグインはアクティブに設定されているにもかかわらず、カテゴリの設定オプションが消えてしまいました。??

「いいね!」 1

設定は管理者 > プラグインUIに移動されました。/admin/plugins/ap/actor を試してください。

「いいね!」 4