ActivityPubプラグイン

|||
-|-|-|
:discourse2: | 概要 | Discourse ActivityPub を使用すると、Discourse の投稿を ActivityPub 経由で公開できるため、Mastodon など ActivityPub をサポートするサービスで読み取ることができます。
:hammer_and_wrench: | リポジトリリンク | GitHub - discourse/discourse-activity-pub: Adds ActivityPub support to Discourse.
:open_book: | インストールガイド | Discourse にプラグインをインストールする方法

ActivityPub に慣れていない場合は、まずこの短いビデオをご覧ください。

プラグインの設定を開始する準備ができたら、activitypub Documentation > Integrations トピックを確認してください。

「いいね!」 65
Publishing posts to Mastodon
Federation support for Discourse
Is diversity of opinion of benefit to community health?
Unable to change category
Getting ActivityPub error when trying to edit a post?
How could a CI workflow for unofficial plugins be implemented?
Synchronising/Crossposting topics across different Discourse sites
2024: The Year in Review
Introducing Discourse Discover
Duplicating an entire topic
Following an ActivityPub Actor
Cross platform Discourse aggregator app
ActivityPub between two Discourse instances
Federation support for Discourse
How to sync posts between two different Discourse sites, and only for specific users
2023: The Year in Review
Sync topic content in Wordpress and Discourse (feature request)
Anyone has discovered/ build a site as multisite (SSO), would like to see the possibilities for inspiration!
Changing ownership of a topic doesn’t work
Code-level performance testing
Discourse Chat Integration
Federation support for Discourse
Federate private categories via ActivityPub
Matrix protocol for chat
Unicode export problems in activitypub plugin
Mailing Lists providers
Can I import replies to posts using RSS Polling and how do I set it up?
Using forum researcher to help organize and split large topics
When goes to a category /latest doesn’t show the actual latest
Using forum researcher to help organize and split large topics
Setting up an ActivityPub Actor
Cross-Discourse Quoting
Incoming synchronization between Fediverse publications and Discourse category?
Creating topic will also creates topic into another forum
Multi-instance activity backup + unified multi-site Discourse reader

ご協力ありがとうございます!これを有効にするのが待ちきれません。また、さまざまなセットアップを持つ私たちがおそらくより広いシナリオでテストに貢献できるように、テスト用にリリースしていただきありがとうございます。

このサイトでこれを有効にする時期を考えると、「一方通行のドア」が何であるかを考えています。

サブカテゴリ

8つのトップレベルカテゴリがありますが、それに加えて21の公開サブカテゴリがあります。すべての公開サイトアクティビティをフォローするために29のアクターをフォローする必要があるのは、多すぎるように思えます。さらに、カテゴリをフォローしてもサブカテゴリはフォローされないというのは、ユーザーにとって驚きかもしれません。

カテゴリのActivityPub設定で「公開サブカテゴリもフェデレーションする」オプションを選択できれば、そうします。サブカテゴリを個別にフェデレーションするかどうかは、ユーザーの観点からはほとんど一方通行のドアのように思えます。したがって、「サブカテゴリもフェデレーションする」オプションを検討していただければ、私の計画に役立つでしょう。デフォルトのサイドバーにはトップレベルカテゴリのみが表示され、それらを表示したときのDiscourseのデフォルトは、トップレベルとサブカテゴリのすべてのコンテンツが一緒に表示されるため、Discourseの期待とかなり一致しているようです。

すべてのものをフェデレーション!

サイト全体のActivityPubアクター設定を追加して、サイト上のすべての公開投稿をフェデレーションするのも興味深いと思います。私も自分でそれを使用します。しかし、それを一方通行のドアとは見なしていません。カテゴリフェデレーションが他に準備ができ次第設定し、後で「すべて@」アクターを追加してすべてをフェデレーションする可能性があります。

編集制限

あなたの投稿からは明らかではないことの1つは、編集できないのは文字通りの [note]...[/note] セクションだけであると読めることです。他の人にとっては、実際に意味するのは、フェデレーションすると、文字通りの [note]...[/note] セクションを持つ投稿を除き、フェデレーションされたすべての投稿で編集が無効になるということです。このメッセージは、編集を保存しようとしたときにのみ表示されます。

私のサイトでは、十分に信頼されているユーザーが無限に編集できるように意図的に設定しているため、この制御を無効にできない(または編集がフェデレーションされるため制御が削除される)限り、これを有効にすることはできません。そのような信頼できるサイトを超えて適用できる一般的な例として、ウィキモードの投稿があるカテゴリは、そのカテゴリのフェデレーションを設定すると壊れます。

ウィキにしたフェデレーションされた投稿を削除しようとしましたが、これが発生しました。

しかし、投稿は削除され、削除はフェデレーションされました。

個性

指定されたアクターごとにプロフィール画像を提供できると良いでしょう。Mastodonでは、各カテゴリのアクターに灰色の象の画像が表示されるだけで、ここに少し個性を加えたいと思っています。:smiling_face:

エラーログ

これまでのところ、activitypubプラグインからログに2種類の જો error が記録されています。

Message (3 copies reported)

NoMethodError (undefined method `ap_type' for nil:NilClass)
(eval):7:in `_fast_attributes'
app/controllers/application_controller.rb:418:in `block in with_resolved_locale'
app/controllers/application_controller.rb:418:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:74:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:367:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
lib/middleware/enforce_hostname.rb:24:in `call'
lib/middleware/request_tracker.rb:228:in `call'

Backtrace

plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/activity.rb:18:in `object'
plugins/discourse-activity-pub/app/serializers/discourse_activity_pub/ap/activity_serializer.rb:18:in `_object'
plugins/discourse-activity-pub/app/serializers/discourse_activity_pub/ap/activity_serializer.rb:9:in `attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:480:in `_serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:359:in `serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:347:in `as_json'
plugins/discourse-activity-pub/lib/discourse_activity_pub/ap/object.rb:50:in `json'
plugins/discourse-activity-pub/app/serializers/discourse_activity_pub/ap/collection/ordered_collection_serializer.rb:7:in `map'
plugins/discourse-activity-pub/app/serializers/discourse_activity_pub/ap/collection/ordered_collection_serializer.rb:7:in `ordered_items'
(eval):7:in `_fast_attributes'
Message

Job exception: undefined method `model' for #<DiscourseActivityPubActivity id: 2, ap_id: "https://social.makerforums.info/cf2e1e8d-83e3-447e...", ap_key: nil, ap_type: "Follow", local: nil, actor_id: 3, object_id: "1", object_type: "DiscourseActivityPubActor", summary: nil, published_at: nil, created_at: "2023-06-01 02:23:13.798564000 +0000", updated_at: "2023-06-01 02:23:13.798564000 +0000">


Backtrace

/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activemodel-7.0.4.3/lib/active_model/attribute_methods.rb:458:in `method_missing'
/var/www/discourse/plugins/discourse-activity-pub/app/models/discourse_activity_pub_activity.rb:79:in `after_deliver'
/var/www/discourse/plugins/discourse-activity-pub/app/jobs/discourse_activity_pub_deliver.rb:42:in `perform_request'
/var/www/discourse/plugins/discourse-activity-pub/app/jobs/discourse_activity_pub_deliver.rb:13:in `execute'
/var/www/discourse/app/jobs/base.rb:249:in `block (2 levels) in perform'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rails_multisite-5.0.0/lib/rails_multisite/connection_management.rb:82:in `with_connection'
/var/www/discourse/app/jobs/base.rb:236:in `block in perform'
/var/www/discourse/app/jobs/base.rb:232:in `each'
/var/www/discourse/app/jobs/base.rb:232:in `perform'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/sidekiq-6.5.9/lib/sidekiq/processor.rb:202:in `execute_job'

重ねて、この作業に感謝します!

「いいね!」 8

SocialHub がすでに実行されていることをお知らせできて嬉しいです。

… タップ、タップ、タップ…

すでにフェディバースに表示されているはずです… ログを確認します…

ああ、最初のフォロー処理で問題が発生しているようです。

  • Job exception: undefined method model’ for #\u003cDiscourseActivityPubActivity id: 2, ap_id: "https://ps.s10y.eu/820e6bf2-ec02-49f8-ab5e-e3cefbb…", ap_key: nil, ap_type: "Follow", local: nil, actor_id: 4, object_id: "2", object_type: "DiscourseActivityPubActor", summary: nil, published_at: nil, created_at: "2023-06-01 13:30:16.131136000 +0000", updated_at: "2023-06-01 13:30:16.131136000 +0000"\u003e`
  • Job exception: undefined method model’ for #\u003cDiscourseActivityPubActivity id: 8, ap_id: "https://mastodon.social/ce62fd77-fe03-4060-a951-79…", ap_key: nil, ap_type: "Follow", local: nil, actor_id: 8, object_id: "2", object_type: "DiscourseActivityPubActor", summary: nil, published_at: nil, created_at: "2023-06-01 13:39:14.512966000 +0000", updated_at: "2023-06-01 13:39:14.512966000 +0000"\u003e`
  • Job exception: undefined method model’ for #\u003cDiscourseActivityPubActivity id: 6, ap_id: "https://social.coop/4236c87a-0d22-402d-8546-e37a21…", ap_key: nil, ap_type: "Follow", local: nil, actor_id: 6, object_id: "2", object_type: "DiscourseActivityPubActor", summary: nil, published_at: nil, created_at: "2023-06-01 13:38:54.493118000 +0000", updated_at: "2023-06-01 13:38:54.493118000 +0000"\u003e`
最後のもののバックトレースはこちらです
active_model-7.0.4.3/lib/active_model/attribute_methods.rb:458:in `method_missing'

/var/www/discourse/plugins/discourse-activity-pub/app/models/discourse_activity_pub_activity.rb:79:in `after_deliver'

/var/www/discourse/plugins/discourse-activity-pub/app/jobs/discourse_activity_pub_deliver.rb:42:in `perform_request'

/var/www/discourse/plugins/discourse-activity-pub/app/jobs/discourse_activity_pub_deliver.rb:13:in `execute'

/var/www/discourse/app/jobs/base.rb:249:in `block (2 levels) in perform'

rails_multisite-5.0.0/lib/rails_multisite/connection_management.rb:82:in `with_connection'
/var/www/discourse/app/jobs/base.rb:236:in `block in perform'

/var/www/discourse/app/jobs/base.rb:232:in `each'

/var/www/discourse/app/jobs/base.rb:232:in `perform'

sidekiq-6.5.9/lib/sidekiq/processor.rb:202:in `execute_job'

sidekiq-6.5.9/lib/sidekiq/processor.rb:170:in `block (2 levels) in process'

sidekiq-6.5.9/lib/sidekiq/middleware/chain.rb:177:in `block in invoke'

/var/www/discourse/lib/sidekiq/pausable.rb:134:in `call'

sidekiq-6.5.9/lib/sidekiq/middleware/chain.rb:179:in `block in invoke'

sidekiq-6.5.9/lib/sidekiq/middleware/chain.rb:182:in `invoke'

sidekiq-6.5.9/lib/sidekiq/processor.rb:169:in `block in process'

sidekiq-6.5.9/lib/sidekiq/processor.rb:136:in `block (6 levels) in dispatch'

sidekiq-6.5.9/lib/sidekiq/job_retry.rb:113:in `local'

sidekiq-6.5.9/lib/sidekiq/processor.rb:135:in `block (5 levels) in dispatch'

sidekiq-6.5.9/lib/sidekiq.rb:44:in `block in <module:Sidekiq>'

sidekiq-6.5.9/lib/sidekiq/processor.rb:131:in `block (4 levels) in dispatch'

sidekiq-6.5.9/lib/sidekiq/processor.rb:263:in `stats'

sidekiq-6.5.9/lib/sidekiq/processor.rb:126:in `block (3 levels) in dispatch'

sidekiq-6.5.9/lib/sidekiq/job_logger.rb:13:in `call'

sidekiq-6.5.9/lib/sidekiq/processor.rb:125:in `block (2 levels) in dispatch'

sidekiq-6.5.9/lib/sidekiq/job_retry.rb:80:in `global'

sidekiq-6.5.9/lib/sidekiq/processor.rb:124:in `block in dispatch'

sidekiq-6.5.9/lib/sidekiq/job_logger.rb:39:in `prepare'

sidekiq-6.5.9/lib/sidekiq/processor.rb:123:in `dispatch'

sidekiq-6.5.9/lib/sidekiq/processor.rb:168:in `process'

sidekiq-6.5.9/lib/sidekiq/processor.rb:78:in `process_one'

sidekiq-6.5.9/lib/sidekiq/processor.rb:68:in `run'

sidekiq-6.5.9/lib/sidekiq/component.rb:8:in `watchdog'

sidekiq-6.5.9/lib/sidekiq/component.rb:17:in `block in safe_thread'

私のフィードにノートが表示されていないようです :frowning:

(このメッセージは適切な場所に移動していただいて構いません)

「いいね!」 8

長期的には、これはアクターごとに固有で設定可能であるべきだと私も同意します。しかし、現時点では、サイトのロゴが取得されるはずです。私には@feature@meta.discourse.orgで取得されています。

「いいね!」 4

わかりました、おそらくそれは私が確認したエラーの1つに関連していたのでしょう。サイトのロゴは非常に理にかなっています。

これを考えてみると…そこにカテゴリの色を使用できる可能性があれば素晴らしいのですが、それが可能かどうかはわかりません。

「いいね!」 4

もう一度試したところ…

部分的に機能しています。元のメッセージから少し短くなりすぎました(71文字)。

私たちはこれを待っていました。Angus McLeodと#Pavilionチーム、そして#Discourseの背後にある企業であるCDCK, Inc.のおかげで、#SocialHubはフェデレーションに対応しました!一般的なお知らせは@fediverse@socialhub.activitypub.rocksを、Fediverse Enhancement Proposalsについては@feps@socialhub.activitypub.rocksをフォローしてください。
:hugs:

「いいね!」 4

一般的な推奨事項:

Activitypub統合を有効にする前に、数日間検討してください。
これらのアカウントはソーシャルネットワークのFediverse内に永続的にリストされ、後でアカウント/カテゴリ名を変更する必要があると気づいた場合に混乱を招く可能性があることを忘れないでください。 :heart:

「いいね!」 2

長期的には、カテゴリのアクター名を変更するためにアカウントの移動を実装することも可能だと考えています。それは単に、その作業を行う意思のある人にとって価値のある、より多くの作業が必要になるだけなので、短期的なものになるとは思いません。:smiling_face:少なくとも、他のより価値のある作業よりも後に来ることを願っています!:grin:

それはあなたのポイントを全く無効にするものではありません。

「いいね!」 3

フィードバックありがとうございます :slight_smile:

@hellekin これはあなたが報告していた例外に対処します。@mcdanlj これはあなたが報告した2番目の例外(同じ問題)にも対処します。

@mcdanlj あなたが報告した最初の問題は少し奇妙です。どのくらいの頻度で発生していますか?もう少し詳しく教えていただけますか?

それについてのフィードバックありがとうございます。フェーズ2で必ず検討します :+1:

これはフェーズ2ではおそらく実現しないと思いますが、承知しました :+1:

編集は、Noteを構成する投稿のコンテンツでのみ無効になります。Noteタグを使用しない場合、それは最初の500文字、またはactivity pub note excerpt maxlengthに設定した値になります。フェーズ2で確実に検討していることの1つは、Noteタグを必須にすることです。これにより混乱が生じる可能性があるためです。

Noteを他のコンテンツから分離するために、[note][/note]タグを使用することで対処できます。

承知しました!ウィキ投稿でこれを明示的にテストしたことはありません。今のところ、ウィキ投稿の削除であなたの問題が再現できていません。確実に再現できますか?このPRにはいくつかの仕様を追加しましたが、すべてそのシナリオでパスしています。しかし、その問題の根本を突き止めたいと思っています。

抜粋の解析は現在、Discourseのトピック抜粋解析と同じシステムによって処理されています(トピックリストの目的のため)。おそらく、それがその大部分をカットした理由でしょう(トピックリストの抜粋も同様にカットされたでしょう)。これはいくつかの問題を引き起こす可能性があるため、別のパーサーを使用する必要があると思います。この件についてはしばらくお待ちください。フェーズ2で必ず対処します。

表示名は好きなだけ変更でき、ユーザー名の変更に関する制限はこのプラグインに固有のものではないことに注意してください。したがって、あなたの言うことは真実ですが、これはFediverseのかなりの部分に当てはまります。

さらに、将来的にユーザー名を変更する機能を追加できる可能性を考慮して、ユーザー名をアクターのIDに含めていません。

プラグインのアクティビティパブデータは、Discourseのデータから抽象化されています。アクターが関連付けられているDiscourseのデータを変更することに固有の制限はありません(つまり、カテゴリ)。将来的には、アクターを異なるタイプのDiscourseモデルに関連付けることさえ可能かもしれません。たとえば、カテゴリのために作成したアクターをユーザーに関連付けるなど(アクターとDiscourseモデルの関係は多態的です)。これらが明示的に機能として追加されるとは言いませんが、この点に関してハードな制限はないということです。

一般的に、どのアクターをどのカテゴリにしたいかを検討することは価値がありますが、全体として、この実装は比較的高い柔軟性を持っているため、懸念の度合いは文脈に応じて相対的です。プラグイン内のデータフローの性質についてもう少し詳しく説明しました。これにより、この点がさらに明確になります。

皆さん、改めてありがとうございました!熱心なユーザーがいるのは素晴らしいことです。

「いいね!」 5

投稿を削除することに関連していたと思います。テスト投稿を3つ削除したところ、エラーが3回発生しました。

それは私のサイトにとっては全く使えなくなります。私は、Mastodonで投稿するよりも複雑な方法でFediverseに投稿するためにDiscourseを使おうとしているわけではありません。コミュニティ全体に、頻繁にヘルプを求める新しいサイトユーザーを含め、[note]...[/note] bbcodeアノテーションの使用を強制することは、実現不可能なことです。

いいえ、絶対にできません。それは私に関するものではありません。それは私のサイトユーザーに関するものです。彼らはDiscourseユーザーであり、discourse/discourse-activity-pub.gitユーザーではありません。

それは単なる編集です。

編集のフェデレーションは普通のことです。私の理解では、広く使われているActivityPub実装のほとんどは、長い間編集を許可してきました。Mastodonは昨年、ついに折れて編集を許可するまで、人気のある実装の中で唯一の例外でした。

編集はMVPリリースには含まれていなかったことは認識していますが、編集をフェデレーションするか、注釈を編集不可にするオプションを無効にするかのどちらかができるようになるまで、私のサイトでこれを有効にすることはできません。私のユースケースが奇妙なのか普通なのかは、もちろんわかりません。

ActivityPubプラグインを使用する私の個人的な目標は、コミュニティフォーラムのメンバーがDiscourseを使用して作成しているコンテンツを、より簡単にフォローおよび共有できるようにすることです。DiscourseをMastodonの奇妙で編集不可能な投稿専用の代替品として使用することではありません。:smiling_face:

エラーメッセージに「現在サポートされていません」と表示されていることから、最終的には編集のフェデレーションをサポートする予定であると理解していますが、それは正しいですか?その場合、これらはすべて一時的な制限であり、ユースケースの違いは重要ではありません。しかし、編集を保護するために労力を費やすことと、編集のフェデレーションをサポートすることのどちらが良いか疑問に思ってしまいます。

本番サイトからretortプラグインを削除したときに、サンドボックスサイトから削除するのを忘れていました。retortを削除したことで、奇妙なエラーログと奇妙なエラーメッセージの両方が修正されました。私のミスです!

これは、現在のプラグインの状態では、同じアクターを複数のカテゴリで使用できるということですか?それとも、データモデルが非常に柔軟で、実装の詳細が変更しやすいということですか?

参考までに、私のユースケースでは、制限なしで全体を投稿することを好みます。他の人がどのように設定するかはわかりませんが、最終的には最大サイズをDiscourseの投稿の最大サイズと同じに設定すると思います。それは…大きいです!:smiling_face:

「いいね!」 2

なるほど、後で詳しく調査します。

承知いたしました。私のコメントは、公開後にノート以外のコンテンツを編集することが現在可能であるという点でした。一般的なユーザーによる一般的な使用においては、この最初のバージョンが多くのUX上の問題がないわけではないというのは正しいです。しかし、例えばアナウンスの連携など、他の用途にはかなり適しています。

はい、フェーズ2で公開後のノートコンテンツの編集サポートを追加する予定です。なお、ノートが公開される前であれば、現在編集はサポートされています。このようなものを作成する場合、可能な限り可動部分を減らす必要があります。

いいえ、まだです。ここでの意味をもう少し詳しく説明していただけますか?サイト全体の俳優を考えていますか、それともサブカテゴリの問題について考えていますか?

はい、「簡単」という言葉を使うかどうかは別として :wink:

制限のないコンテンツをどこに連携させる予定か興味がありますか?純粋な質問です。あなたの考えをもう少し理解したいのです。

「いいね!」 2

retort をそのままにしておいたことがエラーの原因だと気づいた後、それを編集し忘れていました。 :flushed:

おっと。

それで十分です! :pray:

これ以上心配せず、フェーズ2でテストを手伝います。

両方について漠然と考えていましたが、価値の低い質問でした。ステージングサイトでの実験をどこまで進められるか知りたかっただけで、すでに不可能なことがわかっていることを試したくありませんでした。 :+1:

やってみます!

コンテキスト: Mastodon はユーザーが 作成 できる投稿の長さを制限しますが、表示 できる投稿の長さは制限しません。私は文字数制限 2000 文字に設定された Mastodon-glitch サーバーを実行しています。数人が 31337 文字の制限を設定しているのを見ました(もちろん)。pleroma、akkoma などを使用している人たちからの長い投稿がフィードに表示されます。

時々、Maker Forums(私の discourse)に非常にクールなコンテンツが表示されます(私の意見ですが)、そしてそれを Fediverse 全体に宣伝して、より多くの人にアクセスできるようにしたいと考えています。Mastodon は、マイクロブログにとって 500 文字が魔法の長さであるという意見を持っていることは知っています — しかし、ActivityPub はマイクロブログに限定されません。これはマイクロブログを含むが、それに限定されないフェデレーションです。Mastodon アカウントで ActivityPub actor をフォローするとき、短い投稿に限定されません。長い投稿を読んだり、コメントしたり、ブーストしたりできます。

したがって、「どこにフェデレーションすることを想定していますか」という質問は私には混乱を招きます。

  • 私は Mastodon-glitch サーバーからコンテンツをブーストします。ブーストは、標準の Mastodon であっても、投稿の作成に適用される文字数制限を適用しません。
  • コミュニティメンバーは任意の ActivityPub サーバーからフォローすることを期待しています(現時点では Mastodon よりも多いとは認識していますが)、そして彼らは皆、ActivityPub Note がどのくらいの長さであるべきかについて同じ意見を持っているわけではありません。

最終的に、サーバー管理者として、このコンテンツがどこにフェデレーションされるかを制御することはできません。これはすべての フォロワー の決定です。Mastodon のフォロワーであっても、Discourse の投稿全体を ActivityPub Note としてフェデレーションすることと除外することのどちらがデフォルトになるのか、私にはわかりません。ましてや Fediverse 全体ではなおさらです。

この質問に答えているかどうかわかりません。しかし、私もそれをよく理解していないのかもしれません。 :grin: もしよろしければ、この件についてさらに深く掘り下げます。

「いいね!」 2

心配いりません!ひとまず例外についてはカバーできたようでよかったです。もし他に何か見つけたら教えてください。@hellekin 同様に、他に問題や奇妙な動作を見つけたら教えてください。

素晴らしいです!ありがとうございます。

答えています!ありがとうございます。フェーズ2の計画にとって有用な情報です。

「いいね!」 5

最新バージョンにアップグレードしようとしています。役立つ機能の1つは、投稿を公開にするかフォロワーのみにするかを選択できることです。現在は後者なので、ブーストできず、通知を受け取る前にアカウントをフォローする必要があります。実験的な機能であることは理解していますが、Fedizensに広く宣伝できるように、公開投稿のオプションは間違いなく必要だと思います :slight_smile:

「いいね!」 5

はい、フェーズ2で検討する予定です :+1:

「いいね!」 6

開発フェーズの公開ロードマップはありますか?

「いいね!」 3

公開されたロードマップはありませんが、詳細が分かり次第お知らせします。どのような内容にするかについての合理的な提案はいつでも歓迎します!@mcdanljのような具体的なユースケースの例も常に役立ちます

「いいね!」 6

SocialHubに、以前ここでも提案された提案をいくつか行いました…

「いいね!」 2

まだステージングサーバーからのテストでこの点に気づいていませんでしたが、私自身のユースケースでもブーストが中心であることを認めたいと思います。

「いいね!」 6

410 Gone の処理

ログに (URL 変更) が多数記録されています。

[Discourse Activity Pub] GET リクエスト https://activitypub.example/users/missing-account は失敗しました: Expected([200, 201, 202, 301, 302, 307, 308]) <=> Actual(410 Gone)

これは、Object retrieval SHOULD respond with 410 Gone status code if Tombstone is in response body, otherwise responds with 404 Not Found (server:object-retrieval:deleted-object:410-status): アカウントが別のインスタンスに移動しました。に関連していると思われます。


また、いくつか以下のエラーも発生しています。



[Discourse Activity Pub] update_stored_from_json はアクターの保存に失敗しました。AR エラー: Ap は既に存在します。アクター JSON: {"@context":["https://www.w3.org/ns/activitystreams","https://w3id.org/security/v1",{"manuallyApprovesFollowers":"as:manuallyApprovesFollowers","toot":"http://joinmastodon.org/ns#","featured":"@id","featuredTags":"@id","alsoKnownAs":"@id","movedTo":"@id","schema":"http://schema.org#","PropertyValue":"schema:PropertyValue","value":"schema:value","discoverable":"toot:discoverable","Device":"toot:Device","Ed25519Signature":"toot:Ed25519Signature","Ed25519Key":"toot:Ed25519Key","Curve25519Key":"toot:Curve25519Key","EncryptedMessage":"toot:EncryptedMessage","publicKeyBase64":"toot:publicKeyBase64","deviceId":"toot:deviceId","claim":"@id","fingerprintKey":"@id","identityKey":"@id","devices":"@id","messageFranking":"toot:messageFranking","messageType":"toot:messageType","cipherText":"toot:cipherText","suspended":"toot:suspended"}],"id":"https://mas.to/users/rikvipcode","type":"Person","following":"https://mas.to/users/rikvipcode/following","followers":"https://mas.to/users/rikvipcode/followers","inbox":"https://mas.to/users/rikvipcode/inbox","outbox":"https://mas.to/users/rikvipcode/outbox","featured":"https://mas.to/users/rikvipcode/collections/featured","featuredTags":"https://mas.to/users/rikvipcode/collections/tags","preferredUsername":"rikvipcode","name":"","summary":"","url":"https://mas.to/@rikvipcode","manuallyApprovesFollowers":false,"discoverable":false,"published":"2023-05-04T00:00:00Z","devices":"https://mas.to/users/rikvipcode/collections/devices","suspended":true,"publicKey":{"id":"https://mas.to/users/rikvipcode#main-key","owner":"https://mas.to/users/rikvipcode","publicKeyPem":"--...


そして

[Discourse Activity Pub] GET リクエスト https://mastodon.social/users/ejovoni46709 は失敗しました: Expected([200, 201, 202, 301, 302, 307, 308]) <=> Actual(410 Gone)
[Discourse Activity Pub] https://mastodon.social/users/ejovoni46709 の処理に失敗しました: アクターを解決できませんでした
[Discourse Activity Pub] https://mastodon.social/users/ejovoni46709#delete の処理に失敗しました: アクターを作成できませんでした
[Discourse Activity Pub] https://mastodon.social/users/epybisezax9438#delete の処理に失敗しました: オブジェクトが見つかりませんでした
「いいね!」 3