喜んで、私のインスタンスにご招待いたします!プラグインがどこかにログを記録するかどうかはわかりませんが、もし役立つようであれば、そのログをお送りできます。
編集:ボットの認証時に、どのような権限を割り当てましたか?
喜んで、私のインスタンスにご招待いたします!プラグインがどこかにログを記録するかどうかはわかりませんが、もし役立つようであれば、そのログをお送りできます。
編集:ボットの認証時に、どのような権限を割り当てましたか?
ボットには管理者権限が必要です:
ブラウザから許可を付与する必要があります(詳細はここおよび OP に記載):
以下のような URL を使用します:https://discord.com/api/oauth2/authorize?client_id=YOURCLIENTID&scope=bot&permissions=8
ご自身の問題は、Discourse ボットサーバーが正常に動作している(Ping! コマンドで確認済み)ため、ほぼ間違いなく Discord 側の問題です。したがって、Discourse のログは関係ありません。
このプラグインを最新の Discourse バージョンで再テストしましたが、すべて正常に動作しています(他プラグインとの互換性を確保するため、いくつかの gem をより現代的なバージョンに更新しましたが、これはご自身の問題とは無関係です)。
はい、何度か再招待しましたが変化がありません。管理者権限があり、bot スコープも付与されています。私がそのサーバーの所有者であり、ボットを招待したのも私です。しかし、なぜか私を認識せず、「You don’t have permission to execute command discsync!(コマンド discsync を実行する権限がありません)」と返してきます。
正直、わけがわかりません…
やった!どうやら管理者グループ ID を誤って壊してしまったようです… コピー&ペーストで数字を一つ見落としていたのかもしれません…
そこで次の質問ですが、Discourse 上の信頼レベルに基づいて Discord でユーザーに色を割り当てようとしています。信頼レベルを同期させるためのコマンドは以下の通りでしょうか:
!discsync false, 0, true
これで正しいでしょうか?私の環境では以下のような結果が返ってきます:
編集:コンマなしでコマンドを実行しても同じ結果になります。
!discsync false 0 true
可視性レベルを上げてください。標準の自動グループは可視性レベル 1(「ログイン済みユーザー」)にデフォルト設定されています。したがって、この値が 0 の場合、デフォルトの自動グループは除外されます。
値が 0 の場合、匿名ユーザーを含む全員に可視なグループのみが含まれます。
これで私の方の準備は整いました。どうもありがとうございます。大変感謝しております。
お返しとして、私が学んだことをあなたのガイドに執筆してお手伝いすることはできますか?もし難しい場合でも、全く問題ありません。あなたのサポートに恩返しできればと考えています。
それはとても親切ですね。ぜひ編集していただければ幸いです。すでに編集できるはずです。これはウィキですので。\n\nあなたが私の記憶を呼び起こすのを助けてくれましたね ![]()
ロール同期は特に必要ありませんが、フォーラムに新しいトピックが作成されたときにDiscordサーバーの特定のチャンネルに投稿するDiscordボットがあると嬉しいです。そのような機能を持つプラグインはありますか?
はい、このプラグインはおそらくその目的には適していません。このボットは Discourse を基盤としており、Discourse のデータにアクセスできます(許可され、コマンドで指示された場合)。ただし、別スレッドで動作するため、Discourse のイベントによって通知されることはありません。
将来的に、特定のカテゴリ内の新しいトピックを監視する機能を追加することも可能かもしれません。ただし、このアーキテクチャの最適な活用方法とは言えません。PR を歓迎します。
以下を調査する必要がありますね:
または
はい、両方のオプションを調査しました。最初のオプションである Zapier は無料ではありません。5 つまでの無料 Zap を作成できますが、それらは単一ステップの Zap に限定されます。これはそのスレッドで述べられた内容と完全に一致しています。そのため、提案された代替案は、公式プラグインである discourse-chat-integration です。これが私がやりたいことを実現する最も近い方法だと思います。
最後のオプションは、RSS フィードプラグインのようです:
更新: ルールの正しい設定と Webhook の設定を学んだ後、chat-integration は私が望んでいたことを正確に実現してくれました!ありがとうございます。
@merefield さん、こんにちは。
このプラグインについてご連絡いただき、改めてありがとうございます!
ドキュメントに記載されている通りすべてをインストールしました。コマンド !discsync を使用していますが、私からはすべて正常に動作しているように見えます。![]()
ただし、一部のユーザー(全員ではありません)について、彼らのすべてのグループで以下のエラーが発生します。
Discourse Sync: [11/31] 'MaxMustermann' を 'Member' に追加中
Discourse Sync: しかし、これを行う権限があるようには見えない!
サーバー XYZ (ID: 123123123123) でコマンド ^add_role の実行中にエラーが発生しました。nil:NilClass に 'add_role' というメソッドが定義されていません。
他のユーザーは同じグループに対して同期が成功しています ![]()
これは、そのユーザーの Discourse における provider_uid が設定されていないことを示唆しています。調査をお願いします。
ところで、この設定を完了されたのは素晴らしいですね。非常に複雑で、容易なことではありませんでした!:)。
Knowledge Explorer プラグインで以下のクエリを実行しました:
SELECT *
FROM user_associated_accounts u
WHERE u.provider_name = 'discord'
結果は投稿できません(理由:
)が、各ユーザーの provider_uid を確認したところ、全員が持っていました。他にデバッグできることはありますか?
次に考えられる問題は、現在マップされている Discord の UID が誤っていることです。
つまり、Discourse のデータが Discord の有効な UID に対応していない可能性があります。
該当ユーザーの記録を Discord で手動に確認し、正しいことを確認してください。
こんにちは、これを確認できます。ユーザーの Discourse 上の UID と Discord 上の UID が異なっています。
この問題はどのように再現できますか?
関連付けを削除し、ユーザーにDiscordを再度関連付けて再作成してもらうよう依頼することは可能でしょうか?もし再度発生する場合は、ソーシャルログインにバグがあるのでしょうか?
こんにちは、
フォローアップのご連絡です。問題を抱えていた方々と話し、考えられる原因を特定できました。
ユーザーは、サーバーに参加していない古い Discord アカウントでサインアップしていました。そのため、おそらく同期ボットが Discord ユーザーを見つけられず、エラーが発生したようです。
ご明確化ありがとうございます。どのように解決されたかご確認できますでしょうか?その方の関連付けを削除し、再度関連付けを行っていただいたのでしょうか?
はい、そのようにしました。![]()