ユーザーのカテゴリ通知レベルを一括更新する方法は?

以前は、すべてのユーザーに対してデフォルトでカテゴリをミュートしていましたが、誰もカテゴリリストを見てミュートを解除しないことがわかりました。デフォルト設定を削除した後、新しいユーザーがカテゴリに貢献し始めましたが、古いユーザー(約半分)はまだカテゴリのミュート解除方法がわかりません。ミュート解除方法を説明するために固定トピックを試しましたが、うまくいきませんでした。

そのため、これらのユーザーの通知レベルを更新することは可能でしょうか?

「いいね!」 2

管理ダッシュボードの default categories ... の設定グループを確認してください。default categories muted のサイト設定からカテゴリを削除した場合、他の default categories ... のサイト設定を使用して、変更を遡って適用できる可能性があります。

ここでは、遡って機能する default categories watchingdefault categories trackingdefault categories regular のサイト設定を使用できます。

「いいね!」 2

この設定を使用してカテゴリのミュートを解除しようとしましたが、更新されるユーザーは8人だけだと表示されます。しかし、データエクスプローラーで確認すると、(以前の設定により)約1100人のユーザーがこのカテゴリをミュートしています。

また、以前はこのカテゴリはグループに対してデフォルトでミュートされていましたが、デフォルトのグループカテゴリとグローバル設定では違いがありますか?

「いいね!」 1

一般的なニュースカテゴリがある場合の1つの解決策。カテゴリを購読する方法を説明する投稿を作成し、各カテゴリへのリンクと説明を提供します。

これも試しましたが、期待どおりに動作しません…コンソールで一括更新することは可能でしょうか?

「いいね!」 1

それは確信がありません。コマンドラインでは可能かもしれませんが、想像できます。しかし、可能であればその方法については確信がありません。

すべてのユーザーまたはグループ内のユーザーに対して一括変更を行う機能があるはずだと思います。

理解している限りでは、グループ設定はユーザーがグループに参加したときにのみ適用されます。したがって、これを調整する1つのアプローチは、変更したい設定を持つグループを作成し、変更したい人をそのグループに追加することです。

APIを使用してこれを行うこともできます。

API経由での実施例はありますか?

はい、実際にはそうです。


    category_notifications = {'muted_category_ids': [54],
                              'regular_category_ids': [],
                              'tracked_category_ids': [],
                              'watched_category_ids': [],
                              'watched_first_post_category_ids': [61],
                             }

    api(config, f\"u/{username}.json\", method='put',
          json=category_notifications)

ここで api() は、Requests Python モジュールをラップした薄いラッパーであり、Discourse サイトの /u/whateverusernameyouarechanging.json に対して HTTP PUT を実行するだけで、ペイロードは変更したいカテゴリのみです。(変更したくないものは省略できます。)

数値のカテゴリ ID が必要であることに注意してください。名前では機能しません。もちろん、既存のものをマージまたは保持したい場合は、まずユーザーを読み取る必要があります。

「いいね!」 4