创建空间

aki发表于:2019年08月16日 10:07:25更新于:2021年08月09日 16:17:59

Index

创建空间

用模板创建空间。

  • 如未使用空间的功能,将报错。

  • 如未使用来宾空间的功能,将报错。

HTTP 方法

POST

URI

https://(子域名).cybozu.cn/k/v1/template/space.json 
要创建的空间如果是来宾空间,同样是使用上面的URL发送请求。

必要的访问权限

空间的创建权限

※如果要创建来宾空间,需要有来宾空间的创建权限。

请求参数

参数名称要指定的值必须说明
id数值或字符串必须指定创建空间时要使用的模板ID。
name字符串必须指定要创建的空间名称。
members数组必须

用数组形式指定空间的成员信息。
※如空间的管理员一个都没有指定,或指定了以下任意一类用户,都将报错。

  • 使用服务中未勾选kintone的用户

  • 停止使用的用户

  • 已删除的用户

members[].entity对象必须空间成员的实体信息。不可指定来宾用户。
members[].entity.type字符串必须空间成员的实体类型。可指定USER、GROUP、ORGANIZATION的其中一个。
members[].entity.code字符串必须空间成员的实体代码。
members[].isAdmin布尔值或字符串条件必须

指定成员是否作为空间的管理员。省略时为false。
true: 将成员设为空间的管理员。
false: 不将成员设为空间的管理员。

※如空间的管理员一个都没有指定,将报错。

members[].includeSubs布尔值或字符串
指定是否包含下级组织。仅当entity的type为ORGANIZATION时有效。省略时为false。
true: 包含下级组织。
false: 不包含下级组织。
isPrivate布尔值或字符串
指定空间是否为非公开。省略时为false。
true: 非公开空间
false: 公开空间
※isGuest为true时,此处一直都是为true。
isGuest布尔值或字符串
指定是否作为来宾空间创建。省略时为false。
true: 作为来宾空间创建
false: 作为普通空间创建
※来宾空间的启用为OFF时,会报错。
fixedMember布尔值或字符串

指定是否禁止各用户退出空间/取消关注主题。省略时为false。
true: 禁止
false: 许可

请求的范例

以下是在HTTP请求的请求正文中设置JSON数据的范例。

请求头部
POST /k/v1/template/space.json HTTP/1.1
Host: example.cybozu.cn:443
X-Cybozu-Authorization: QWRtaW5pc3RyYXRvcjpjeWJvenU=
Authorization: Basic QWRtaW5pc3RyYXRvcjpjeWJvenU=
Content-Type: application/json
正文
{    
    "id": 1,    
    "name": "空间范例",    
    "members": [    
        {    
            "entity": {    
                "type": "USER",    
                "code": "user1"    
            },    
            "isAdmin": true    
        },    
        {    
            "entity": {    
                "type": "GROUP",    
                "code": "group1"    
            },    
            "isAdmin": false    
        },    
        {    
            "entity": {    
                "type": "ORGANIZATION",    
                "code": "org1"    
            },    
            "isAdmin": false,    
            "includeSubs": true    
        }    
    ]    
}
  • Content-Type里请指定application/json。如不指定,JSON 无法解析,执行时会报错。

应答

参数名称值的类型说明
id字符串创建的空间的ID
{    
    "id": "1"    
}

JavaScript范例

使用API请求发送 kintone REST API 请求

var body = {    
    "id": 1001,    
    "name": "空间范例",    
    "members": [    
        {    
            "entity": {    
                "type": "USER",    
                "code": "user1"    
            },    
            "isAdmin": true    
        },    
        {    
            "entity": {    
                "type": "GROUP",    
                "code": "group1"    
            },    
            "isAdmin": false    
        },    
        {    
            "entity": {    
                "type": "ORGANIZATION",    
                "code": "org1"    
            },    
            "isAdmin": false,    
            "includeSubs": true    
        }    
    ]    
}    
kintone.api(kintone.api.url('/k/v1/template/space', true), 'POST', body, function(resp) {    
    // success    
    console.log(resp);    
}, function(error) {    
    // error    
    console.log(error);    
});

使用 XMLHttpRequest 请求

var body = {    
    "id": 1001,    
    "name": "空间范例",    
    "members": [    
        {    
            "entity": {    
                "type": "USER",    
                "code": "user1"    
            },    
            "isAdmin": true    
        },    
        {    
            "entity": {    
                "type": "GROUP",    
                "code": "group1"    
            },    
            "isAdmin": false    
        },    
        {    
            "entity": {    
                "type": "ORGANIZATION",    
                "code": "org1"    
            },    
            "isAdmin": false,    
            "includeSubs": true    
        }    
    ],    
    // CSRF TOKEN: 从kintone里执行API(POST, PUT, DELETE)时,需要设置    
    "__REQUEST_TOKEN__": kintone.getRequestToken()    
};

var url = 'https://{subdomain}.cybozu.cn/k/v1/template/space.json';    
var xhr = new XMLHttpRequest();    
xhr.open('POST', url);    
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');    
xhr.setRequestHeader('Content-Type', 'application/json');    
xhr.onload = function() {    
    if (xhr.status === 200) {    
        // success    
        console.log(JSON.parse(xhr.responseText));    
    } else {    
        // error    
        console.log(JSON.parse(xhr.responseText));    
    }    
};    
xhr.send(JSON.stringify(body));

相关Tips