Olá, tenho usado a API do Discourse e o plugin OAuth2 para migrar e fazer o login de usuários do meu próprio serviço SSO para uma instalação privada do Discourse. Até agora, consegui migrar programaticamente todos os usuários do SSO para o Discourse com sucesso. Ao migrar programaticamente, novos usuários são criados com um ID específico do Discourse em autoincremento. Minha pergunta é: posso usar a API para criar um usuário com um ID explícito para esse usuário? Ou seja, se eu atribuir um ID:22 a um usuário, poderei consultá-lo em /admin/users/22.json?
Tentei passar os parâmetros ‘id’ e ‘external_id’ no corpo da requisição POST, mas não funcionou.
edição: também, existe uma maneira, por meio da API, de alterar o nome de usuário de um usuário específico, dado o seu ID?
Obrigado, mas não tenho o external_id quando o usuário é criado. O usuário é criado programaticamente, e a associação com o SSO externo só ocorrerá quando o usuário fizer login no Discourse. A menos que haja uma maneira de associar programaticamente o usuário a esse external_id durante a migração de usuários, não acho que o external_id possa ser utilizado.
Preciso migrar vários usuários existentes do meu SSO para o Discourse. Esses usuários podem nunca fazer login diretamente no Discourse, mas deve ser possível, por exemplo, enviar mensagens a eles ou recuperar suas notificações via API do Discourse. É por isso que eles devem ser criados proativamente de forma programática. Além disso, os usuários podem alterar seu nome de usuário no SSO, então, dado um ID, preciso ser capaz de atualizar o nome de usuário de um usuário no Discourse também.
Eu iniciei um novo tópico ou o outro conteúdo foi excluído de alguma forma?
Parece que o SSO teria a conta e conheceria um ID externo que você poderia usar para criar o registro do usuário e, em seguida, usá-lo no futuro. Mas, se isso for impossível de alguma forma, você pode tentar encontrar o usuário pelo endereço de e-mail — você poderia até criar um segundo endereço de e-mail fictício (já que e se eles mudarem seu e-mail real?) e, em seguida, talvez ocultá-lo de alguma forma para que você possa usá-lo como identificador daqui para frente.