无法使用API创建组所有者

您好,

我需要将一个旧应用程序迁移到 Discourse。
我正在使用 API 和 CURL 来创建用户和组。

我使用的是 Discourse v3.1.0.beta5 +392

对于用户,我没有遇到问题:
curl -X POST “site-discourse/users.json”
-H “Api-Key: api-key”
-H “Api-Username: api-username”
-F “name=name1”
-F “email=email1”
-F “password=password1”
-F “username=username1”
-F “active=true”
-F “approved=true”

对于组,我尝试一次性创建所有内容:组、bio_raw、成员和所有者,根据 Discourse API Docs
curl -X POST “site-discourse/admin/groups.json”
-H “Content-Type: application/json”
-H “Api-Key: api-key”
-H “Api-Username: api-username”
-d ‘{“name”:“groupe1”,“bio_raw”:“A propos du groupe1”,“usernames”:“username1”,“owner_usernames”: “owner_username1”}’

组已创建,包含名称和 bio_raw,但没有 username1 和 owner_username1。

但是,我可以按以下方式创建成员:
curl -X PUT -d ‘{“usernames”: “username1,username2”}’
-H “Content-Type: application/json”
-H “Api-Key: api-key”
-H “Api-Username: api-username” site-discourse/admin/groups/$group_id/members.json

但我无法通过 API 创建 owner_usernames!

感谢您的帮助
Franck Lucas

您好 FLucas,欢迎来到 meta.discourse.org :blob_wave:

通过逆向工程 API,我了解到用户名必须用逗号分隔,中间没有空格。如果您试图一次添加多个用户,这可能是您的问题。

我使用以下载荷进行了测试:

{
    "group": {
        "name": "test",
        "bio_raw": "test",
        "full_name": "test",
        "usernames": "Canapin,adan",
        "owner_usernames": "cristopher_klocko,Canapin"
    }
}

作为 POST 请求发送到 admin/groups.json,它成功了。

3 个赞

感谢您的帮助,

多亏了您的示例,我才得以创建包含所有数据的群组:

curl -X POST “https://site-discourse/admin/groups.json
-H “Content-Type: application/json”
-H “Api-Key: api-key”
-H “Api-Username: api-username”
-d ‘{
“group”: {
“name”: “name”,
“bio_raw”: “bio_raw”,
“full_name”: “full_name”,
“usernames”: “username1,unsaername2”,
“owner_usernames”: “owner_username1,owner_username2”
}
}’

我的 API 调用存在结构性问题!

感谢您的快速回复,

Frank Lucas

3 个赞

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