トピックタイマーのトリガーにはAPI権限が必要です

こんにちは!

「最終返信から x 日後にトピックをクローズする」機能をトリガーしようとしています。しかし、どの権限が必要なのか分かりません。完全な書き込み権限を付与するのはできれば避けたいです。

具体的なエンドポイント:
POST /t/{ID}/timer

ペイロードの例:

status_type=close&based_on_last_post=true&duration_minutes=20160

正しい方向性を教えていただけますか?

ご協力よろしくお願いいたします!

Mathewさん、こんにちは。

レビューのために、トリガーされているエラーの内容を共有してもらえますか?

こんにちは @pedro

これまで、フルな書き込み権限を与えない限り、403エラーが返ってくるばかりでした。

サポートされている異なるURLのAPIビューにあるヒントからすると、タイマー用のフォーマット(/t/{ID}/timer)に一致するものが見当たりません。ただ、私が何かを見落としているだけかもしれませんが :slight_smile:

フルな書き込み権限を与えるのは避けたいので、特にこの場合に必要な権限を特定しようとしています。

ありがとうございます!

403エラーは、duration_minutes や based_on_last_post パラメータではなく、トピックタイマーエンドポイントに必要な権限に関連している可能性が高いです。

APIドキュメントに表示されている権限だけに頼るのではなく、現在のDiscourseソースコード内で POST /t/{id}/timer の認可要件を確認することをお勧めします。タイマーアクションには、UIで使用されているトピックレベルの書き込み/モデレーション権限が必要であり、それが現在フルライトアクセスで動作する理由を説明している可能性があります。

トピックタイマーに対してより細かな権限が利用可能な場合、エンドポイントの認可チェックと対応するポリシー/ガーディアンメソッドから特定できるはずです。そうでない場合、より広い書き込みアクセスを付与するのではなく、必要なトピックスコープのみにAPIキーを制限するのが望ましいです。