api_username 制限が新たに施行されましたか?

当社のアプリケーションでは、すべてのユーザーに対してグローバルな API キーを使用しています。ユーザーがサインインしていない場合のコンテキストを表すために、仮想ユーザー名(存在しないユーザー)anonymous を使用していました。これは 2020 年 10 月 25 日午前 12:39(中部標準時)まで 3 年以上問題なく機能していました。

本日、そのユーザー名を持つユーザーを作成することで回避策を講じました。今週末に制限が導入されたのでしょうか?それとも API の更新によるものでしょうか?

これにより、すべての公開ユーザーがコメントを表示できなくなりました。回答をいただければ幸いです。

よろしくお願いいたします。

Justin

エラーは以下の通りです…

最近、この挙動を変更するような変更があったとは認識していません。以前からこのように動作していた(ユーザーが見つからない場合はエラーを表示する)と認識していました。これは、API 認証情報からユーザー名を読み取れるかを確認するコードです。

そして、以下の user は存在しないため nil となり、それが 131 行目で上記のエラーメッセージを発生させます。

23 日前に変更が行われましたが、それはあなたの状況には適用されず、いずれにせよ異なるエラーメッセージを返します。

念のため確認しましたが、1 年以上前のこのコミットを使用してローカルの Discourse を設定し、存在しないユーザーを使用すると、同じエラーが発生しました。

このことから良い点として、現在 API スコープが導入されているため、ユーザーが read アクセスのみを必要とする場合、その API キーを「全アクセス」キーではないように更新できます。

「いいね!」 1

公開サイトの場合、匿名表示を取得するために、認証なしでバックエンドからこれらのリクエストを送信できるはずです。レート制限が問題となる場合は、実際のダミーユーザーを使用する必要があります。

「いいね!」 1

もう一つ思い出したのですが、revoke api keys days というサイト設定についてです。そのユーザーが存在しないため、そのキーの最終使用日は更新されず、おそらくキーは自動的に無効化されたのでしょう?しかし、そもそもどのようにして有効なリクエストを行えたのか、いまだに不明です。