Gravatar や外部システムのアバターについては既に知っていますが、ユーザーのアバターを他の外部画像に割り当てることは可能でしょうか?私の場合、ユーザーはアバターを変更できず、代わりに別のシステムがアバターを決定する必要があります。
この「システム」の一部として、ユーザーのアバターを更新する PUT リクエストを呼び出すことができます。例えば:
$.ajax({
url: 'https://example.com/site/selectable-avatars.json',
type: 'GET',
success: function(data) {
const payload = {
url: data[1] // 現在はハードコーディング。後で何らかのデータに基づいて割り当てます
}
$.ajax({
url: 'https://example.com/u/' + username + '/preferences/avatar/select',
type: 'PUT',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
'Api-Key': 'my-api-key',
'Api-Username': 'my-api-username'
},
data: JSON.stringify(payload),
success: function(data, textStatus) {
console.log(data, textStatus);
}
})
}
})
このコードは完全に機能し、渡された画像にアバター画像が割り当てられます。この場合、data[1] としてハードコーディングされています。data は、Discourse の設定で「選択可能なアバター」として設定された画像の配列です。
問題は、画像の URL が実際には url そのものではなく、https://example.com/${url} として構築されていることです。
要するに、内部画像ではなく別のドメインからの外部画像をアバターファイルとして設定することは可能でしょうか?あるいは、私が行おうとしていることをより良い方法で行う手段はあるでしょうか?
お時間をいただき、ありがとうございます。