无法理解用于添加和删除组所有者的 API

我想使用 API 添加和删除群组所有者。API 文档中没有记录这一点。

在以管理员身份登录时跟踪调用,将用户设为所有者是:

PUT groups/<gid>/owners 载荷为 usernames=nikkilocke(注意没有 admin!)

将用户从所有者中移除是:

DELETE admin/groups/<gid>/owners 载荷为 user_id=<uid>

研究源代码显示:

      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

这段代码自 2023 年以来似乎没有改变。

我正在运行 Discourse 3.4.7,源代码中的添加所有者入口点会返回 404 错误。

我尝试过的 URL:

PUT /groups/384/owners usernames=nikkilocke OK

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

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

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

有人能告诉我这是怎么回事,以及应该使用哪些 URL 吗?

我猜那是个拼写错误,而不是你出错的原因?

2 个赞

API最好且最可靠的文档是逆向工程Discourse API

您确定您拥有有效的API密钥并且正在正确传递它吗?如果身份验证不正确,则预期会出现404错误。

您能否执行任何需要授权的请求?

正如我在原始帖子中所说,4种可能性中的3种都可以正常工作(使用相同的API密钥)。

1 个赞

啊。抱歉。“OK”在行尾对我来说太微妙了,我没能理解。

当我添加所有者时,我看到这个PUT请求 https://example.com/groups/75/owners.json,表单数据中包含 usernames=\npfaffman123

你是否遵循了我链接的逆向工程步骤?

@Nikki_Locke 您的问题解决了吗?

该主题在 6 天后自动关闭。不再允许回复。