그라바타(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 설정의 "선택 가능한 아바타(selectable avatars)"로 설정된 이미지 배열입니다.
문제는 이미지 URL이 단순히 url이 아니라 실제로 https://example.com/${url}로 구성된다라는 점입니다.
결국 제가 묻고 싶은 핵심은, 내부 이미지가 아닌 외부 이미지(다른 도메인)를 아바타 파일로 설정할 수 있는지, 그리고 제가 하려는 일을 수행하는 더 나은 방법이 있는지입니다.
시간 내어 답변해 주셔서 감사합니다.