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:
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.
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: