API、ユーザー作成がもはやuser_idを返さなくなる

API経由で毎日新しいユーザーを作成するスクリプトがあります。数日前までは、投稿が完了すると、応答に新しく作成されたユーザーのuser_idが含まれていました。しかし、APIドキュメントには含まれると記載されているにもかかわらず、APIは現在それを行っていません。

「いいね!」 4

ユーザーは作成されていますか?

何らかの理由でユーザーが作成されていないため、user_idが返されないのだと推測します。

ユーザーは作成されています。確認しました。APIは以下のステータスを返しますが、user_id がありません。

{
    "success": true,
    "active": true,
    "message": "Your account is activated and ready to use."
}
「いいね!」 2

はい。それはバグのようですね。Commits · discourse/discourse · GitHub で説明を探しましたが、見つかりませんでした。

問題を確認するため、3.4.0.beta3-dev で API を介してユーザーを作成したところ、レスポンスで user_id が返されました。

{
	"success": true,
	"active": true,
	"message": "Your account is activated and ready to use.",
	"user_id": 3
}

3.4.0.beta4-dev にアップグレードしてから再度実行したところ、user_id が欠落していました。

{
	"success": true,
	"active": true,
	"message": "Your account is activated and ready to use."
}
「いいね!」 2

これで、問題のあるコミットがどこにあるか絞り込めました。

「いいね!」 1

勘です

おそらく、こちらで説明されている DEV: Change hide_email_address_taken default to true (#30293) · discourse/discourse@c1c7ea8 · GitHub に関連していると思われます。

管理APIキーを使用してリクエストが行われた場合に、この動作を上書きすることが望ましいのではないでしょうか?

「いいね!」 6

ありがとうございます!その設定を変更したところ、ユーザーを作成した後に結果で user_id を取得できるよう API の結果が復元されました。

「いいね!」 3

こんにちは。

私も同じです…

開発者の方々が現在対応中の件でしょうか?この設定がドキュメントと矛盾する可能性があることを覚えておくのは難しいかもしれませんね :stuck_out_tongue: