同期 SSO でのアバターリセット

sync_sso を使用している間にアバターをリセットし、letter_avatar_proxy を再度使用したいと考えています。
現在は avatar_force_update=true を指定し、avatar_url には値を渡していません。avatar_url に明示的な値(null など)を渡すべきでしょうか?
ご回答よろしくお願いいたします。

Discourse の SSO コードを確認したところ、sync_sso を呼び出してユーザーのアバターを文字アバターにリセットすることはできないと思います。このコードは、avatar_url パラメータで渡された URL からアバターをダウンロードしようとする処理を行います。もしこのパラメータが省略されているか、null または空文字列に設定されている場合、ユーザーのアバターに変更は加えられません。

API にそのような処理を行わせるには、どのようにリクエストすればよいでしょうか?回避策を実装しようとしましたが、うまく機能していません。

特定のアクションを実行するための適切な API 呼び出しを確認するには、Discourse のユーザーインターフェースを通じてそのアクションを実行しつつ、ウェブインスペクタのネットワークタブを監視して、行われているリクエストの詳細を確認するのが良いアプローチです。この方法の詳細については、「Discourse API のリバースエンジニアリング方法」をご覧ください。

ユーザーのアバターをシステムアバターに更新するには、以下の API PUT リクエストを送信します。

http://forum.example.com/u/<discourse_username>/preferences/avatar/pick

リクエストのフォームデータに type=system を設定してください。URL には、お使いのフォーラムの URL と更新したい Discourse ユーザー名を置き換えてください。

以下は、私のローカルサイトからの curl リクエストの例です。$api_key には「全ユーザー用 API キー」を設定しています。

curl -X PUT "http://localhost:3000/u/scossar/preferences/avatar/pick" \
-H "Api-Key: $api_key" \
-H "Api-Username: system" \
-H "Content-Type: multipart/form-data;" \
-F "type=system"

注意点として、サイト設定で sso overrides avatar が有効になっている場合、このリクエストは失敗します。

奇妙なことに、これは私が試した回避策だったのですが、結果が不安定でした。もう少し試して、改めて報告します。