API를 통한 외부 사이트 아바타?

커뮤니티용 Rails 사이트를 운영하고 있습니다. 커뮤니티 멤버들이 Discourse에 별도로 로그인하지 않도록 SSO를 사용하고 있으며, 두 서버 간 정보 교환을 위해 Discourse API를 활용하고 있습니다. 이제 사용자 아바타를 통합하고 싶습니다. 즉, 메인 사이트와 포럼에서 동일한 아바타를 사용하고 싶은 것이죠. 어떻게 해야 할까요?

일반적으로 API 요청에 사용하는 방식, 즉 헤더에 API 키와 API-Username을 포함하고 다음과 같은 바디를 가진 Faraday POST 요청을 https://discuss.diem25.org/uploads.json으로 보내는 것을 시도해 보았습니다:

{ 
          "type": "avatar", 
          "user_id": user_id,
          "file": "https://internal.diem25.org/.../user.jpg",
          "synchronous": "true"
        }

이 요청은 Internal Server Error를 반환합니다. 마지막 수단으로 파일을 다시 업로드하는 것도 고려하고 있지만, Faraday를 사용하면 처음부터 보기에도 어렵거나 불가능해 보입니다.

sso overrides avatar 사이트 설정을 사용해 SSO 시스템으로 아바타 URL을 전달하는 방법은 어떨까요? API를 통해 수동으로 업로드하는 것보다 SSO로 처리하는 것이 더 나을 수 있습니다.

감사합니다. 좋은 아이디어네요. 다만 이렇게 하면 통합 문제가 반대로 발생하게 됩니다. 현재 일부 사용자는 Discourse에는 아바타가 있지만 제 사이트에는 아바타가 없거든요. 그래서 선택지는 두 가지인 것 같습니다. Discourse의 모든 아바타를 제 사이트에 업로드한 뒤 “sso overrides avatar” 설정을 하는 것, 또는 제 사이트의 모든 아바타를 Discourse에 업로드하는 것입니다. :unamused:

faraday에서 파일의 URL을 단순히 지정할 수 없기 때문이라고 생각합니다. 먼저 파일을 읽어 들여야 하거나, 그런 종류의 처리가 필요할 것 같습니다.

다만, discourse_api 지워(jem)를 사용하면 URL을 지정하여 아바타를 업데이트할 수 있습니다:

client.update_avatar(
  username: "norbert6",
  url: "http://vignette1.wikia.nocookie.net/despicableme/images/1/15/Jerryindespicableme.png"
)