Como posso atualizar usuários via API usando o ID do usuário (não o nome de usuário)?

Gostaria que minha aplicação atualizasse a conta do Discourse vinculada aos meus usuários: especificamente o nome de exibição e os grupos aos quais o usuário pertence (por exemplo, quando são promovidos na minha aplicação, são adicionados a outro grupo do fórum também).

Eu esperava armazenar uma referência de “discourse member id” na tabela de usuários da minha aplicação e usá-la para fazer atualizações, por exemplo, POST /users/{id}.json com um payload como {"name": "novo nome"}. Mas parece que todas as rotas da API esperam um username em vez de um id.

Não entendo por que isso seria o padrão: os usuários não podem alterar seu nome de usuário? Parece que isso quebraria a integração se eles o fizessem.

Como posso fazer alterações como essas de forma confiável, usando um identificador consistente (como id)?

2 curtidas

Por enquanto, acho que sua melhor opção é fazer duas solicitações à API. Uma para buscar o usuário por ID a fim de obter o nome de usuário, e a segunda solicitação para atualizar por nome de usuário.

Existe uma opção para atualizar um usuário por external_id, mas acredito que isso não possa ser usado sem o single-sign-on (SSO) ativado. Dessa forma, o Discourse armazena o ID do usuário do seu aplicativo, e não o contrário.

2 curtidas

Obrigado, tive um momento de insight semelhante após postar.

1 curtida

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.