Não consigo entender a API para adicionar e remover proprietários de grupos

Desejo adicionar e remover proprietários de grupos usando a API. Isso não está documentado na documentação da API.

Rastreando as chamadas enquanto logado como administrador, tornar um usuário proprietário é

PUT groups/<gid>/owners com um payload de usernames=nikkilocke (note que não há admin!)

Remover um usuário dos proprietários é

DELETE admin/groups/<gid>/owners com um payload de user_id=<uid>

Estudando o código-fonte mostra:


      def group_add_owners(group_id, args)
        args = API.params(args).required(:usernames).to_h
        put("/admin/groups/#{group_id}/owners.json", group: args)
      end

      def group_remove_owners(group_id, args)
        args = API.params(args).required(:usernames).to_h
        delete("/admin/groups/#{group_id}/owners.json", group: args)
      end

e este código não parece ter mudado desde 2023.

Estou executando o Discourse 3.4.7, e o ponto de entrada para adicionar proprietários no código-fonte retorna um erro 404.

URLs que tentei:

PUT /groups/384/owners usernames=nikkilocke OK

PUT /admin/groups/384/owners group[usernames]=nikkilocke erro 404

DEL /admin/groups/384/owners group[usernames]=nikkilocke OK

DEL /admin/groups/384/owners user_id = 12 OK

Alguém pode me aconselhar sobre o que está acontecendo e quais URLs usar para isso, por favor?

Presumo que isso seja um erro de digitação e não a causa do seu erro?

2 curtidas

A melhor e mais confiável documentação para a API é Engenharia reversa da API do Discourse

Você tem certeza de que possui uma chave de API válida e que a está passando corretamente? Um erro 404 é esperado se você não estiver autenticado adequadamente.

Você consegue fazer alguma solicitação que exija autorização?

Como eu disse na postagem original, 3 das 4 possibilidades funcionam bem (com a mesma chave de API).

1 curtida

Ah. Desculpe. O “OK” no final da linha foi sutil demais para eu entender.

Quando adiciono um proprietário, vejo esta solicitação PUT https://example.com/groups/75/owners.json com usernames=\npfaffman123 nos dados do formulário.

Você seguiu as etapas de engenharia reversa que eu linkei?

@Nikki_Locke você conseguiu resolver seu problema?

Este tópico foi fechado automaticamente após 6 dias. Novas respostas não são mais permitidas.