Avatar fora do site via API?

Tenho um site Rails comunitário. Estou usando SSO para que os membros da comunidade não precisem fazer login separadamente no Discourse e estou usando a API do Discourse para facilitar a troca de informações entre os dois servidores. Agora, gostaria de unificar os avatares dos usuários, ou seja, usar o mesmo avatar no fórum e no meu site principal. Como faço isso?

Tentei o que costumo fazer para solicitações de API, ou seja, uma solicitação POST Faraday para https://discuss.diem25.org/uploads.json com chave de API e API-Username no cabeçalho e o seguinte corpo:

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

Essa solicitação resulta em um Erro Interno do Servidor. Também não me oponho a reenviar o arquivo como último recurso, mas isso parece ser difícil ou impossível à primeira vista, usando Faraday.

Por que não tentar a configuração do site sso overrides avatar e passar a URL do avatar com o sistema SSO? Pode ser melhor lidar com isso via SSO em vez de fazer uploads manualmente usando a API.

Obrigado, essa é uma boa ideia. Isso apenas inverte o problema de integração, porque atualmente alguns usuários têm um avatar no Discourse, mas não têm um avatar no meu site. Então, parece que minhas opções são: fazer upload de todos os avatares do Discourse para o meu site e, em seguida, definir ‘sso sobrescreve avatar’, ou fazer upload de todos os meus avatares para o Discourse. :unamused:

Acho que isso ocorre porque você não pode simplesmente especificar uma URL para um arquivo no Faraday; ele precisa ser lido como um arquivo primeiro, ou algo assim.

No entanto, você pode usar o gem discourse_api para atualizar um avatar especificando uma URL:

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