ActivityPub Actor の設定

このトピックでは、Discourse ActivityPub プラグインを使用して Discourse で ActivityPub アクターを設定する方法について説明します。これが何を意味するかわからない場合は、まず Discourse ActivityPub プラグイン のトピックを参照してください。

次のステップ

手順

ActivityPub アクターを作成するには:

  1. 管理 > プラグイン > ActivityPub に移動します。
  2. 「アクターを追加」をクリックします。
  3. アクター追加フォームに記入します (設定については以下で説明します)。
  4. 「アクターを保存」をクリックします。

アクターを保存すると、Fediverse の他のアクターがそれをフォローできるようになります。アクターは、編集アクタービューの右側にある「有効」トグルを切り替えることで無効にできます。

アクターの設定

ユーザー名

これは、アクターの ActivityPub ハンドルの最初の部分です。たとえば、announcements@meta.discourse.org のユーザー名は announcements です。これは、リモート Discourse インスタンス上のアクターのユーザーのユーザー名のベースになります (そのインスタンスでユーザー名が既に取得されている場合は、一意性を確保するために整数が追加されます)。

:point_right: このプロパティは、ActivityPub 仕様の preferredUsername に相当します。
:point_right: 現在、一度設定すると変更できません。これは、Mastodon のこの PR がマージされるか、または将来的に変更される可能性があります。

名前

これはアクターの表示名です。その使用方法は、他のサービスがどのように実装するかによって異なります。Discourse では、これはアクターのユーザーの「名前」になります。

可視性

これは、アクターによって公開されるアクティビティが「公開アドレッシング」を持つかどうかを決定します。何をしているかわからない限り、これは公開のままにしておくべきです。

:point_right: これは、Mastodon の「公開」投稿と「非公開」(フォロワーのみ) 投稿の違いと基本的に同じです。

ポストオブジェクトタイプ

これは、アクターが Note または Article として投稿を公開するかどうかを決定します。何をしているかわからない限り、これは Note のままにしておくべきです。

:point_right: Mastodon は、Article を受信した場合にのみ、元の投稿へのリンクを公開します。

公開タイプ

フル トピック

アクターに関連付けられたトピックのすべての投稿が公開され、Fediverse からのすべての返信が投稿に変換されます。

最初の投稿

アクターに関連付けられたトピックの最初の投稿のみが公開され、Fediverse からの返信は投稿に変換されません。

「いいね!」 3

Discourse 3.3.2 インストールにプラグインを追加しました。プラグインのリストやプラグインの設定などでプラグインを確認できます。

しかし、アクターを追加しようとすると、タグ(不要)のアクターしか追加できず、カテゴリのアクターを追加できません。これは UI / ブラウザ側の JavaScript の問題のようです(私は Web 開発者ではありません)。

Debian 上の Firefox と Chromium の両方で試しましたが、どちらも同じ動作をします。

  • タグのアクターの追加は期待どおりに機能します。
  • カテゴリのアクターの追加は、「モデル / カテゴリを選択」の右側にカテゴリの選択ボックスが表示されないため不可能です。

「モデルを選択」ボタンから「カテゴリ」を選択すると、開発者コンソールに次のエラーが表示されます。

runtime.js:912 Uncaught TypeError: Cannot read properties of null (reading 'firstNode')
    at ue.firstNode (runtime.js:912:1)
    at T (runtime.js:241:1)
    at ue.reset (runtime.js:983:1)
    at ae.resume (runtime.js:686:1)
    at Ut.handleException (runtime.js:4309:1)
    at Vt.handleException (runtime.js:4521:1)
    at Dt.throw (runtime.js:4260:1)
    at $e.evaluate (runtime.js:2088:1)
    at Dt._execute (runtime.js:4247:1)
    at Dt.execute (runtime.js:4232:1)
    at qt.rerender (runtime.js:4547:1)
    at hr.render (index.js:4674:1)
    at index.js:4934:1
    at Nt (runtime.js:4080:1)
    at gr._renderRoots (index.js:4916:1)
    at gr._renderRootsTransaction (index.js:4960:1)
    at gr._revalidate (index.js:4992:1)
    at invoke (backburner.js.js:280:1)
    at h.flush (backburner.js.js:197:1)
    at p.flush (backburner.js.js:358:1)
    at B._end (backburner.js.js:798:1)
    at B.end (backburner.js.js:589:1)
    at B._run (backburner.js.js:842:1)
    at B._join (backburner.js.js:819:1)
    at B.join (backburner.js.js:629:1)
    at l (index.js:81:1)
    at u.onHover (index.js:118:1)
    at e.handleMouseEnter (select-kit-row.js:83:22)

通常、Meta でのサポートは最新の安定版またはテスト合格リリースのみに提供されます。遅れている理由は何ですか?最新版にアップグレードして、もう一度試す価値があります。

タイプミスでした、すみません。3.3.2 を使用しています。

「いいね!」 1

@LaF0rge様、このプラグインは現在、Discourseの最新バージョンのみをサポートしています。詳細は以下をご覧ください。

「いいね!」 1

Hi @angus - ご返信ありがとうございます。残念ながら、本番環境のインストールをベータ版または現在のgit masterにアップグレードするつもりはありません。Discourseの新しい安定版がタグ付け/リリースされるまで待つことになると思います。

ところで、プラグインの最小バージョン要件を示す構造化された情報はありますか?このスレッドの最初の投稿や、GitHub - discourse/discourse-activity-pub: Adds ActivityPub support to Discourse. にも記載が見つかりませんでした。

他のソフトウェアプロジェクト/製品では、プラグインは通常バージョンの互換性を示しています。

プラグインは1年以上前から存在しているので、別の選択肢としては、3.3.2が最新だった頃の古いバージョンのプラグインにダウングレードすることでしょうか?しかし、コミットログではDiscourseのバージョンへの参照をすぐに見つけることができませんでした。

特別な理由がない限り、Discourse の tests-passed ブランチを使用することをお勧めします。詳細は以下をご覧ください。

さらに、experimental タグが付いたプラグインやカスタマイズ(ActivityPub プラグインのように)は、最新バージョンの Discourse でのみ確実に機能すると想定できます。

バージョン管理に関する暗黙の質問について、より具体的に説明すると、Discourse プラグインでは .discourse-compatibility ファイルで管理されており、詳細についてはこちらをお読みください。

ActivityPub プラグインの互換性ファイルはこちらをご覧ください。

ActivityPub プラグインはまだ experimental であるため、後方互換性の確保は重点を置いていませんでしたが、来週初めにそのファイルに明示的な 3.3.2 サポートを追加することを検討します。

しかし、前述のように、特別な理由がない限り、tests-passed を使用することをお勧めします。

「いいね!」 3

@LaF0rge これを確認しました。

プラグインは、互換性ファイルに既に含まれているため、明示的な 3.3.2 サポートを追加する必要はありません。

< 3.4.0.beta1-dev: 3a6512d0560211b93f022a27ed7276024d0020dc

3.3.2 の標準的な Discourse インストールを使用している場合、プラグインのコミット 3a6512d0560211b93f022a27ed7276024d0020dc が自動的に適用され、カテゴリドロップダウンが機能します。詳細については以下をご覧ください。

追加の入力をいただきありがとうございます。本日、プラグインコミット 3a6512d0560211b93f022a27ed7276024d0020dc を、アップグレード済みの discourse 3.3.3 で再度試しましたが、どの URL に対してもすべての HTTP リクエストが Completed 500 Internal Server Error in 42ms (ActiveRecord: 0.0ms | Allocations: 16860) で応答される状態になりました。production.log にも、標準出力/エラーにも、passenger.3000.log にも、エラーを示すログはありませんでした。プラグインディレクトリからプラグインを削除して再起動したところ、問題は解決しました。これは何度か再現可能でした。

今のところ、諦めます。ActivityPub 統合を試すのは良いアイデアでしたが、他の正常にインストールできたプラグインとは異なり、有用なことを達成できるレベルではないようです。結局のところ、これは必須要件ではなく、「あれば嬉しい」という程度のことです。

もしプラグインの特定のコミットとDiscourseの特定のバージョンを手動で照合しようとすると、うまくいかない可能性が高いです。Discourseの標準インストールを検討することをお勧めします。オーバーヘッドが削減され、このプラグインやその他のプラグインを問題なく使用できるようになります。

おっしゃることは分かります。しかし、私はタグ付けされた/リリースされたバージョンのソフトウェアのインストールと運用から逸脱するつもりはありません。Discourseについては、現時点ではAFAICTで3.3.3です。

タグ付けされたリリース以外のものに本番システムを実行することは、非常に不快で落ち着きません。時代遅れだと言われても構いませんが、私は1990年代半ばからITシステムを正常に運用(および開発)してきました。

あなたや公式のDiscourse開発者コミュニティが異なる態度/アプローチを持っていることを尊重します。意見が違うということで合意しましょう。それでも、これまでのご協力に感謝いたします。

「いいね!」 1