この howto は、discourse-chat-integration に含まれる Matrix (element.io ) プロバイダーのセットアップ方法について説明します。
\u003e この統合をサポートしてくれた @ara4n さん、および #matrix-dev:matrix.org のメンバーの皆様に感謝します
インストール
discourse-chat-integration プラグインは Discourse にバンドルされています。サイト設定で chat_integration_enabled を true に設定して有効になっていることを確認してください。詳細については、discourse-chat-integration プラグイントピックをご覧ください。
Matrix のセットアップ
以下の手順は、element.io の Web クライアントを使用していることを前提としています。他のインターフェースでも同様の手順が可能であるはずです。
新しい シークレットウィンドウ で https://app.element.io/ を開きます(後でその理由がわかります)
ボットのユーザーアカウントを作成します。後で再度ログインしたい場合に備えて、パスワードをどこかに書き留めておくと良いでしょう。Discourse 側ではパスワードは必要ありません。
通知を送信したいルームに参加するために、インターフェースを使用してルームに参加します
左上のアバターをクリックし、\u003ckbd\u003eすべての設定\u003c/kbd\u003e を選択してユーザー設定を開きます
ボットの表示名とアバターを設定します
「ヘルプとについて」タブに切り替え、「詳細」までスクロールして、ホームサーバーアドレスと「アクセストークン」をコピーします(後で必要になります)。
ログアウトをクリックしないでください 。クリックするとアクセストークンが無効化され、機能しなくなります。代わりに、シークレットウィンドウを閉じるだけで構いません。もしシークレットウィンドウを開くのを忘れた場合は、ステップ 1 に戻ってください
Discourse のセットアップ
Discourse のサイト設定で、chat_integration_matrix_homeserver 設定にホームサーバーアドレスを入力します。プロトコルを含めることを忘れないでください(例: https://matrix.org)。末尾のスラッシュは含めないでください。
先にコピーしたアクセストークンを chat_integration_matrix_access_token サイト設定に貼り付けます
chat_integration_matrix_enabled を有効にします
\u003ckbd\u003eプラグイン\u003c/kbd\u003e タブ、次に \u003ckbd\u003eチャット統合\u003c/kbd\u003e に移動します
\u003ckbd\u003eMatrix\u003c/kbd\u003e タブ、次に \u003ckbd\u003eチャンネルの作成\u003c/kbd\u003e に移動します
チャンネルの名前を入力します(これは管理インターフェースでのみ表示され、任意の名前を付けられます)
通知を送信したいルームの「ルーム ID」を入力します。Element Web クライアントでは、ルームを開き、上部の名前をクリックして一番下までスクロールすると確認できます。以下のような形式になります。
!cdGUowUAqlgLHVerqE:matrix.org
注: 新しい Matrix Room v12 の ID は :server サフィックスを含まない場合があります(例: !abcdefghijkl)。どちらの形式もサポートされています。
\u003ckbd\u003eチャンネルを保存\u003c/kbd\u003e
作成したチャンネルにある \u003ckbd\u003eテスト\u003c/kbd\u003e ボタンを使用して、すべてが正常に動作しているか確認します。以下のような表示が確認できるはずです。
discourse-chat-integration の手順に従って、チャンネルの「ルール」を設定します。
技術的な注記
執筆時点では、ユーザーフレンドリーな方法で「ボット」の「アクセストークン」を取得する方法は見当たりませんでした。シークレットウィンドウを使用する解決策が、私が発見した中で最もユーザーフレンドリーな方法です
このプラグインは、Matrix 仕様の一部である org.matrix.custom.html 形式を使用してリッチテキストメッセージを送信します。フォーマットされたメッセージをサポートしていないクライアントは、プレーンテキストメッセージにフォールバックします
デフォルトでは、メッセージは m.notice として送信されます(Matrix クライアントは通常、これをより静かにレンダリングします)。chat_integration_matrix_use_notice サイト設定を無効にすることで、これを m.text に変更できます
この実装では、アクセストークンの「更新」に関する規定はありません。これは、現在使用されているほとんどのホームサーバーがトークンを失効させないという理解に基づいています。将来これが変更された場合は、見直す必要があります
「いいね!」 19
The test is not working for us:
422 No Reason Phrase
and the spinner will keep on turning indefinitely until full page reload. How can we triage the error?
「いいね!」 4
david
(David Taylor)
2019 年 1 月 27 日午後 5:37
3
I just tried setting up a matrix integration using the instructions above, and it all worked ok. Can you confirm that you’re running the latest version of Discourse and this plugin?
Are you using the matrix.org homeserver, or your own homeserver? The 422 error is coming from that server.
I would suggest double checking your channel identifier, and also your matrix access token in your Discourse site settings.
「いいね!」 4
Thanks for the hints. I’ll try that out, before reporting back here.
「いいね!」 4
nesnera
(Ladislav Nesnera)
2019 年 7 月 21 日午後 9:18
5
I have absolutely the same issue as @almereyda has.
@david , can you update obtaing “Access Token”, please? (Riot seems to be intensively developed )
+“Doctor log ”
「いいね!」 2
efeefe
(Felipe Schmidt Fonseca)
2020 年 6 月 8 日午後 10:13
6
アクセストークンの取得に関する最新の手順についても興味があります…
「いいね!」 1
sunjam
(james.network)
2021 年 9 月 20 日午前 4:18
7
Element(Riot のリブランディング)では現在「ルーム設定」と呼ばれています。
完璧に動作します。
「いいね!」 2
mattdm
(Matthew Miller)
2022 年 1 月 3 日午後 8:54
10
sunjam:
Element (Riotのリブランディング)。
このページを更新して、その変更を反映しました。
アクセス トークンは、設定の下部にある「ヘルプと概要」の下にあるようです。
私も同じ無限スピナーの問題を抱えています。
matrix.org と fedora.im の両方のルームで試しました。
「いいね!」 1
david
(David Taylor)
2022 年 1 月 4 日午後 9:30
11
自分でセットアップを実行してみましたが、問題なく動作したようです。いくつか考えられることがあります。
「いいね!」 1
mattdm
(Matthew Miller)
2022 年 1 月 4 日午後 9:41
12
されていません。
そうかもしれませんが、アクセストークンをコピーしてすぐに使用しましたが、うまくいきませんでした。
「いいね!」 3
david
(David Taylor)
2022 年 1 月 4 日午後 11:04
13
記録のために、@mattdmと私はDiscourseの設定にあるホームサーバーURLの末尾のスラッシュに起因する問題であることを突き止めました。
OPの指示にこの件についての注意点を追加し、最新のelement.io UIで動作するようにアクセストークンの指示も更新しました。
「いいね!」 5
チャットプラグインの最新バージョン(コミット ba40ede510986f74a23345082ac578e126467b97)をインストールし、テスト用のMatrixルーム(暗号化なし、公開ルーム)を設定したところ、上記で説明されているようにテストを実行しようとすると500 HTTPエラーが発生します(Set up Matrix (element.io) notifications using the discourse-chat-integration plugin - #2 by almereyda
ボットアカウントのアクセストークンは、API(_matrix/client/r0/rooms/{room_id}/send/m.room.message)を使用して、私たち自身のMatrixサーバーにメッセージを送信することで独立して検証されました。
Discourseのログには以下が表示されます。
Started POST "/admin/plugins/chat-integration/test" for 141.142.60.55 at 2022-11-16 18:16:47 +0000
Processing by DiscourseChatIntegration::ChatController#test as */*
Parameters: {"channel_id"=>"107", "topic_id"=>"466"}
Completed 500 Internal Server Error in 62ms (ActiveRecord: 0.0ms | Allocations: 10109)
NameError (uninitialized constant FinalDestination::HTTP)
app/controllers/application_controller.rb:387:in `block in with_resolved_locale'
app/controllers/application_controller.rb:387:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:71:in `call'
lib/middleware/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:361:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
lib/middleware/request_tracker.rb:198:in `call'
「いいね!」 1
mattdm
(Matthew Miller)
2022 年 11 月 20 日午後 6:40
16
james.network:
スレッドサポートで何かうまくいった人はいますか?
試していませんが、それは興味深いですね。チャンネルの乱雑さを減らすためにすべての投稿を1つのスレッドに入れるということですか、それともトピックの返信をマトリックスのスレッドに投稿することですか?
「いいね!」 2
sunjam
(james.network)
2022 年 12 月 8 日午後 2:15
17
トピックの返信をMatrixスレッドに投稿します。
(現在のSlackと同じフロー)
「いいね!」 1
mattdm
(Matthew Miller)
2023 年 5 月 20 日午後 5:26
18
Matrixでスレッド返信サポートの追加について、何か進展はありましたか?一部のユーザーがそれを喜ぶと思います。
「いいね!」 3