组织用户管理

本文为您介绍组织用户成员管理下的API接口(仅适用于独立部署用户)。

查询组织成员列表

  • 接口路径:/openapi/v2/organization/userGET

  • 接口描述:获取组织下的用户列表,分页。

  • 输入参数

    参数

    数据类型

    描述

    是否必需

    keyword

    String

    账户或者昵称的模糊搜索关键字。

    主要搜索字段:accountNamenickName

    pageNum

    int

    页数。

    默认为1。

    pageSize

    int

    页码。

    默认为10。

  • 返回参数说明(SDK调用时,仅返回data部分):

    参数

    类型

    描述

    traceId

    string

    请求ID。

    code

    string

    抛错码。取值范围:

    • 0:调用成功

    • AE或OE开头的异常码:调用失败

    message

    string

    抛错信息。取值范围:

    • success:调用成功

    • 其他信息:调用失败时的提示

    success

    boolean

    是否请求成功。取值范围:

    • true:请求成功

    • false:请求失败

    data

    object

    返回用户列表的分页结果,组织成员的详细信息列表存放在返回参数Data中。

    • totalNum

    int

    总行数。

    • totalPages

    int

    总页数。

    • pageSize

    int

    请求接口时设置的每页行数。

    • pageNum

    int

    页码。

    • data

    object []

    成员列表。

    accountId

    string

    账号ID。

    示例值:b5d8fd9348cc4327****afb604

    userType

    int

    组织成员的用户类型。取值范围:

    • 1 :开发者

    • 2 :访问者

    • 3 :分析师

    示例值:1

    accountName

    string

    账号名。

    示例值:xxxxxx@163.com

    accountType

    int

    账号类型

    nickName

    string

    账号昵称。

    示例值:张三

    email

    string

    邮箱

    phone

    string

    手机号

    admin

    boolean

    是否是管理员。取值范围:

    • true:是

    • false:否

    示例值:true

    重要

    参数已过期不推荐使用,以RoleIds 参数为准。

    authAdmin

    boolean

    是否是权限管理员。取值范围:

    • true:是

    • false:否

    示例值:true

    重要

    参数已过期不推荐使用,以RoleIds 参数为准。

    userId

    string

    Quick BI中的UserID。

    示例值:b5d8fd9348cc4327****afb604

    roleIdList

    List<long>

    组织角色ID,最多3个,包括但不限于组织预置角色:

    • 组织管理员(预置角色):111111111

    • 权限管理员(预置角色):111111112

    • 普通用户(预置角色):111111113

    joinedDate

    long

    加入时间时戳

    lastLoginTime

    long

    用户最后登录时间戳

  • 返回参数:

    {
    	"traceId": "5d07a633-****-4c1e-8928-1c0aa177****",
    	"code": null,
    	"message": null,
    	"data": {
    		"next": null,
    		"pre": null,
    		"data": [{
    			"accountId": "4d9f22c4f15e****a1210313c3e4cb6e",
    			"authAdmin": false,
    			"accountName": "test_name",
    			"phone": null,
                "roleIdList":[111111111,111111112,111111113],
    			"nickName": "测试账号",
    			"accountType": 3,
    			"admin": false,
    			"userType": 1,
    			"userId": "4d9f22c4f15e****a1210313c3e4cb6e",
    			"email": null,
                "joinedDate": 1595575199000,
                "lastLoginTime": 1595575199000
    		}],
    		"totalNum": 1,
    		"totalPages": 1,
    		"start": 0,
    		"pageSize": 10,
    		"orderBy": null,
    		"pageNum": 1,
    		"orderString": null
    	},
    	"success": true
    }
  • JAVA SDK 示例:

    @Test
    public static void QueryUserList() throws SDKException {
        HttpRequest request = HttpRequest.build()
                .setUri("/openapi/v2/organization/user")
                .setMethod(HttpMethod.GET);
        // 非必填参数
        //request.addParameter("keyword",1);
        //request.addParameter("pageNum", 1);
        //request.addParameter("pageSize", 10);
        String result = openApiClient.syncExecute(request);
        System.out.println(result);
    }

添加组织成员

  • 接口路径/openapi/v2/organization/userPOST

  • 接口描述:向AK对应的组织中,添加成员用户。

  • 输入参数:(content-type:application/json;charset=UTF-8,以JSON格式提交)。

    参数

    类型

    描述

    是否必需

    accountId

    string

    第三方系统的账户 ID,此字段非必须。

    若为空,则 quick bi 的 userId 自动生成。

    起始版本:独立部署v3.6

    注意:accountId必须保证唯一,如果是「Quick BI自建账号」类型,accountId 不生效,由系统自动生成

    accountName

    string

    账户名称。

    格式检查:最大长度50个字符

    注意:accountName 必须保证唯一

    accountType

    int

    账号类型。accountType用于区分当前是什么类型的账号。枚举包含:

    3:Quick BI自建账号。

    6:三方账号,即通过OAuth/SAML等协议对接到三方SSO系统的账号。

    起始版本:独立部署3.12.1

    注意:账号类型不为空

    nickName

    string

    昵称。

    格式检查:最大长度50个字符;特殊格式校验(中英文 数字 _ \ / | () [] )。注意:昵称必须保证唯一

    admin

    boolean

    是否是组织管理员

    注意 参数已过期不推荐使用,当传入RoleIds 时该参数无效。

    email

    string

    email。

    格式检查:是否是邮件格式

    userType

    int

    用户类型,1:开发者类型   2:访问者类型  3:分析师类型

    默认为1.     

    起始版本:独立部署v3.6

    注意:访问者类型不会添加到默认空间

    phone

    string

    电话号码。

    格式检查:是否是电话号码,只能包含() + - 0-9的字符

    roleIdList

    List<string>

    用户绑定的预置或自定义组织角色ID,用英文逗号“,”分割,最多3个。取值范围:

    • 组织管理员(预置角色):111111111

    • 权限管理员(预置角色):111111112

    • 普通用户(预置角色):111111113

  • 返回参数说明(SDK调用时,仅返回data部分):

    参数

    类型

    描述

    traceId

    string

    请求ID。

    code

    string

    抛错码。取值范围:

    • 0:调用成功

    • AE或OE开头的异常码:调用失败

    message

    string

    抛错信息。取值范围:

    • success:调用成功

    • 其他信息:调用失败时的提示

    success

    boolean

    是否请求成功。取值范围:

    • true:请求成功

    • false:请求失败

    data

    object

    返回新增用户的详细信息。

    • accountId

    string

    账号ID。

    示例值:b5d8fd9348cc4327****afb604

    • userType

    int

    组织成员的用户类型。取值范围:

    • 1 :开发者

    • 2 :访问者

    • 3 :分析师

    示例值:1

    • accountName

    string

    账号名。

    示例值:xxxxxx@163.com

    • accountType

    int

    账号类型

    • nickName

    string

    账号昵称。

    示例值:张三

    • email

    string

    邮箱

    • phone

    string

    手机号

    • admin

    boolean

    是否是管理员。取值范围:

    • true:是

    • false:否

    示例值:true

    • authAdmin

    boolean

    是否是权限管理员。取值范围:

    • true:是

    • false:否

    示例值:true

    • userId

    string

    Quick BI中的UserID。

    示例值:b5d8fd9348cc4327****afb604

  • 返回参数:

    {
        "traceId":"308dc464-513b-****-bbe9-cd0d2fb9****",
        "code":null,
        "message":null,
        "data":{
            "accountId": "test_123", 
            "userType": 1,            
            "accountName":"new_testss12***@alibaba.com",
            "accountType":3,
            "nickName":"测试小号123s12",
            "email":"xxxxxx123@163.com",
            "phone":"188****1111",
            "admin":true,
            "authAdmin":true,
            "userId":"44e6a073b****002840df64d50b16455"
        },
        "success":true
    }
  • JAVA SDK 示例:

    public void AddUser() throws Exception {
        HttpRequest request = HttpRequest.build()
            .setUri("/openapi/v2/organization/user")
            .setMethod(HttpMethod.POST);
        request.addParameter("admin","false");
        request.addParameter("authAdmin","false");
        request.addParameter("userType","1");
        request.addParameter("accountName","yubxx_202403152");
        request.addParameter("nickName","yubxxi_202403152");
        request.addParameter("accountType","3");
        JSONArray roleIdList = new JSONArray();
        roleIdList.add("111111111");
        roleIdList.add("111111112");
        request.addParameter("roleIdList",roleIdList);
        String result = openApiClient.syncExecute(request);
        System.out.println(result);
    }

删除组织用户

  • 接口路径/openapi/v2/organization/user/{userId}DELETE

  • 输入参数: userId,路径参数

  • 接口描述:从组织中删除用户,但是遇到空间owner,则无法删除。该接口逐渐废弃,请参见从组织中强制删除用户

  • 返回参数说明(SDK调用时,仅返回data部分):

    参数

    类型

    描述

    traceId

    string

    请求ID。

    code

    string

    抛错码。取值范围:

    • 0:调用成功

    • AE或OE开头的异常码:调用失败

    message

    string

    抛错信息。取值范围:

    • success:调用成功

    • 其他信息:调用失败时的提示

    success

    boolean

    是否请求成功。取值范围:

    • true:请求成功

    • false:请求失败

    data

    boolean

    返回接口执行结果。取值范围:

    • true:执行成功

    • false:执行失败

  • 返回参数:

    {
        "traceId":"2572dea3-2799-****-8e47-0cc1501bd59f",
        "code":null,
        "message":null,
        "data":true,   # true,删除成功
        "success":true
    }
  • JAVA SDK 示例:

    public static void DeleteUser() throws SDKException {
        String userId = "xxx";
        HttpRequest request = HttpRequest.build()
                .setUri("/openapi/v2/organization/user/" + userId)
                .setMethod(HttpMethod.DELETE)
                .setHttpContentType(FormatType.JSON);
        String result = openApiClient.syncExecute(request);
        System.out.println(result);
    }

根据用户ID查询用户信息

  • 接口路径/openapi/v2/organization/user/{userId}GET

  • 输入参数: userId,路径参数。

  • 接口描述:获取当前组织下一个成员的具体信息。

  • 返回参数说明(SDK调用时,仅返回data部分):

    参数

    类型

    描述

    traceId

    string

    请求ID。

    code

    string

    抛错码。取值范围:

    • 0:调用成功

    • AE或OE开头的异常码:调用失败

    message

    string

    抛错信息。取值范围:

    • success:调用成功

    • 其他信息:调用失败时的提示

    success

    boolean

    是否请求成功。取值范围:

    • true:请求成功

    • false:请求失败

    data

    object

    返回用户的详细信息。

    • accountId

    string

    账号ID。

    示例值:b5d8fd9348cc4327****afb604

    • userType

    int

    组织成员的用户类型。取值范围:

    • 1 :开发者

    • 2 :访问者

    • 3 :分析师

    示例值:1

    • accountName

    string

    账号名。

    示例值:xxxxxx@163.com

    • accountType

    int

    账号类型

    • nickName

    string

    账号昵称。

    示例值:张三

    • email

    string

    邮箱

    • phone

    string

    手机号

    • admin

    boolean

    是否是管理员。取值范围:

    • true:是

    • false:否

    示例值:true

    注意 参数已过期不推荐使用,以RoleIds 参数为准。

    • authAdmin

    boolean

    是否是权限管理员。取值范围:

    • true:是

    • false:否

    示例值:true

    注意 参数已过期不推荐使用,以RoleIds 参数为准。

    • userId

    string

    Quick BI中的UserID。

    示例值:b5d8fd9348cc4327****afb604

    • roleIdList

    List<long>

    组织角色ID,最多3个,包括但不限于组织预置角色:

    • 组织管理员(预置角色):111111111

    • 权限管理员(预置角色):111111112

    • 普通用户(预置角色):111111113

  • 返回参数:

    {
        "traceId":"6796a38f-3084-****-a103-a20bb6498431",
        "code":null,
        "message":null,
        "data":{
            "accountId": "test_123",    
            "userType": 1,            
            "accountName":"new_testss12***@alibaba.com",
            "accountType":"3",
            "nickName":"测试小号123s12",
            "email":"xxxxxx123@163.com",
            "phone":"188****0011",
            "admin":true,
            "authAdmin":true,
            "userId":"44e6a073b****002840df64d50b16455",
            "roleIdList":[111111111,656704594,795597636]
        },
        "success":true
    }
    重要
    • 该接口会做租户隔离判断,如果指定的userId不存在或者不属于组织,会有抛错信息。抛错信息如下:

    • AE0150100004:该用户不在组织中

    • AE0150100003:用户不存在

    {
        "traceId":"e9418aae-2ba8-****-ae8b-ab681ef3dbf1",
        "code":"AE0150100004",   // 错误码
        "message":"该用户不在组织中",  // 错误信息
        "success":false
    }
  • JAVA SDK 示例:

    public static void QueryUserInfoByUserId() throws SDKException {
        String userId = "xxx";
        HttpRequest request = HttpRequest.build()
                .setUri("/openapi/v2/organization/user/" + userId)
                .setMethod(HttpMethod.GET);
        String result = openApiClient.syncExecute(request);
        System.out.println(result);
    }

更新组织成员信息

  • 接口:/openapi/v2/organization/user/{userId}    (PUT)

  • 接口描述:更新组织成员的昵称、email/phone/组织角色。

  • 输入参数:(userId是路径参数。其他为JSON串参数,位于JSON串中,放到PUT请求的body中)

  • 补充说明(起始版本4.7.4):

    • 当admin和authAdmin都传null时,不修改用户角色。

    • 当admin和authAdmin都未传true,设置为普通用户。

    参数

    类型

    描述

    是否必需

    userId

    String

    路径参数,用户ID

    admin

    boolean

    是否是组织管理员,传入时会覆盖用户角色信息。

    重要

    参数已过期不推荐使用,当传入RoleIds 时该参数无效。

    authAdmin

    boolean

    是否是权限管理员,传入时会覆盖用户角色信息(独立部署4.7.4新增)。

    重要

    参数已过期不推荐使用,当传入RoleIds 时该参数无效。

    nickName

    string

    昵称。

    格式检查,最大长度50个字符;特殊格式校验(中英文 数字 _ \ / | () [] )

    userType

    int

    用户类型:

    1:开发者类型   

    2:访问者类型

    3:分析师类型

    默认为1。

    起始版本:独立部署v3.6

    注意:访问者类型不会添加到默认空间

    email

    string

    email。

    格式检查,邮件地址格式检查

    phone

    string

    电话号码

    格式检查,电话号码格式检查,只能包含() + - 0-9这些字符

    roleIdList

    List<string>

    用户绑定的预置或自定义组织角色ID,用英文逗号“,”分割,最多3个。取值范围:

    • 组织管理员(预置角色):111111111

    • 权限管理员(预置角色):111111112

    • 普通用户(预置角色):111111113

    isDeleted

    boolean

    用户状态

    • 激活-false

    • 失效-true

  • 返回参数说明(SDK调用时,仅返回data部分):

    参数

    类型

    描述

    traceId

    string

    请求ID。

    code

    string

    抛错码。取值范围:

    • 0:调用成功

    • AE或OE开头的异常码:调用失败

    message

    string

    抛错信息。取值范围:

    • success:调用成功

    • 其他信息:调用失败时的提示

    success

    boolean

    是否请求成功。取值范围:

    • true:请求成功

    • false:请求失败

    data

    boolean

    返回接口执行结果。取值范围:

    • true:执行成功

    • false:执行失败

  • 返回参数:

    {
        "traceId":"9bbd2088-6aeb-****-9ef3-082cc5a4f8f3",
        "code":null,
        "message":null,
        "data":true, 
        "success":true
    }
  • JAVA SDK 示例:

    public static void UpdateUser() throws SDKException {
        HttpRequest request = HttpRequest.build()           .setUri("/openapi/v2/organization/user/{userId:.+}")
                .setMethod(HttpMethod.PUT);
        request.addParameter("admin","xxx");
        request.addParameter("authAdmin","xxx");
        request.addParameter("userType","xxx");
        request.addParameter("nickName","xxx");
        request.addParameter("email","xxx");
        request.addParameter("phone","xxx");
        JSONArray roleIdList = new JSONArray();
        roleIdList.add("111111111");
        //roleIdList.add("111111112");
        request.addParameter("roleIdList",roleIdList);
        String result = openApiClient.syncExecute(request);
    
        System.out.println(result);
    }

判断用户是否属于组织

  • 接口路径:/openapi/v2/organization/user/{userId}/existGET

  • 接口描述:判断指定的用户是否属于组织,存属关系在返回结果中以true/fasle表示。

  • 起始版本:独立部署3.7

  • 输入参数:

    参数

    类型

    描述

    是否必需

    userId

    String

    路径参数,用户ID。

  • 返回参数说明(SDK调用时,仅返回data部分):

    参数

    类型

    描述

    traceId

    string

    请求ID。

    code

    string

    抛错码。取值范围:

    • 0:调用成功

    • AE或OE开头的异常码:调用失败

    message

    string

    抛错信息。取值范围:

    • success:调用成功

    • 其他信息:调用失败时的提示

    success

    boolean

    是否请求成功。取值范围:

    • true:请求成功

    • false:请求失败

    data

    boolean

    返回接口执行结果。取值范围:

    • true:用户存在并属于组织

    • false:用户不属于组织或不存在

  • 返回参数:

    {
        "traceId":"9bbd2088-6aeb-****-9ef3-082cc5a4f8f3",
        "code":null,
        "message":null,
        "data":true,    // true:用户存在并属于组织  false: 用户不属于组织或不存在
        "success":true
    }
  • JAVA SDK 示例:

    public static void CheckOrganizationMember() throws SDKException {
        String userId = "xxx";
        HttpRequest request = HttpRequest.build()
                .setUri("/openapi/v2/organization/user/" + userId + "/exist")
                .setMethod(HttpMethod.GET);
        String result = openApiClient.syncExecute(request);
        System.out.println(result);
    }

根据三方账号查询用户信息

  • 接口路径/openapi/v2/organization/user/queryByAccountGET

  • 接口描述:根据三方账号(三方账号ID、三方账号名称)获取Quick BI中的用户详情。例如,使用三方账号换取Quick BI的UserId。如果创建三方账号的时候没有传入三方账号ID,且账号未登录过,则无法根据ID获取到三方账号信息。

  • 起始版本: 独立部署3.8.3

  • 输入参数

    参数名

    类型

    描述

    是否必需

    account

    string

    三方账户ID 或者账户名

    accountType

    integer

    账号类型。

    3:Quick BI自建账号

    6:三方账号(通过OAuth等协议对接的客户的系统账号)

    注意:如果存在两个相同账户名(account)的不同类型的账号时,必须传入该字段,否则抛错。

  • 返回参数说明(SDK调用时,仅返回data部分):

    参数

    类型

    描述

    traceId

    string

    请求ID。

    code

    string

    抛错码。取值范围:

    • 0:调用成功

    • AE或OE开头的异常码:调用失败

    message

    string

    抛错信息。取值范围:

    • success:调用成功

    • 其他信息:调用失败时的提示

    success

    boolean

    是否请求成功。取值范围:

    • true:请求成功

    • false:请求失败

    data

    object

    返回新增阿里云用户的详细信息。

    • accountId

    string

    账号ID。

    示例值:b5d8fd9348cc4327****afb604

    • userType

    int

    组织成员的用户类型。取值范围:

    • 1 :开发者

    • 2 :访问者

    • 3 :分析师

    示例值:1

    • accountName

    string

    账号名。

    示例值:xxxxxx@163.com

    • accountType

    int

    账号类型

    • nickName

    string

    账号昵称。

    示例值:张三

    • email

    string

    邮箱

    • phone

    string

    手机号

    • admin

    boolean

    是否是管理员。取值范围:

    • true:是

    • false:否

    示例值:true

    注意 参数已过期不推荐使用,以RoleIds 参数为准。

    • authAdmin

    boolean

    是否是权限管理员。取值范围:

    • true:是

    • false:否

    示例值:true

    注意 参数已过期不推荐使用,以RoleIds 参数为准。

    • userId

    string

    Quick BI中的UserID。

    示例值:b5d8fd9348cc4327****afb604

    • roleIdList

    List<long>

    组织角色ID,最多3个,包括但不限于组织预置角色:

    • 组织管理员(预置角色):111111111

    • 权限管理员(预置角色):111111112

    • 普通用户(预置角色):111111113

  • 返回参数:

    {
        "traceId":"9bbd2088-****",
        "code":null,
        "message":null,
        "data":{
            "accountName":"wang***@163.com",
            "accountId":"125446***",
            "accountType": 3,
            "nickName":"张三163",
            "admin":true,
            "authAdmin":false,
            "userId":"78212ee***",
            "userType":1,
            "phone":"139****8888",
            "email":"877***@xx.com",
            "roleIdList":[111111111,656704594,795597636]
    
        },
        "success":true
    }
  • JAVA SDK 示例:

    private static void QueryUserInfoByAccount() throws SDKException {
        HttpRequest request = HttpRequest.build()
            .setUri("/openapi/v2/organization/user/queryByAccount")
            .setMethod(HttpMethod.GET);
        request.addParameter("account", "125446280***");
        // 非必填参数
        // request.addParameter("accountType", "3");
        String result = client.syncExecute(request);
        System.out.println(result);
    }

强制删除组织成员

  • 接口路径/openapi/v2/organization/user/forceDelete DELETE

  • 接口描述:从当前组织中强制删除一个用户,并指定资源的接受者转移者。如果资源接受者不属于被删除者的空间,则会把资源接受者加入对应的空间之中。但是遇到以下情况,则删除失败:

    • 被删除者为组织owner

    • 被删除者是空间owner,但是资源转移者为组织的分析师或者访问者(无法加入空间)。

    • 被删除者和资源转移者都是空间成员,但是被删除者的空间角色权限大于资源转移者(空间管理员> 空间开发者 > 空间分析师 > 空间阅览者)

  • 输入参数:(表单参数提交,content-type=application/x-wwww-url-encoded)

    参数

    类型

    描述

    是否必需

    userId

    String

    待删除的用户ID

    transferUserId

    String

    资源接受者的用户ID。不指定则默认为空间Owner。

  • 返回参数说明(SDK调用时,仅返回data部分):

    参数

    类型

    描述

    traceId

    string

    请求ID。

    code

    string

    抛错码。取值范围:

    • 0:调用成功

    • AE或OE开头的异常码:调用失败

    message

    string

    抛错信息。取值范围:

    • success:调用成功

    • 其他信息:调用失败时的提示

    success

    boolean

    是否请求成功。取值范围:

    • true:请求成功

    • false:请求失败

    data

    boolean

    返回接口执行结果。取值范围:

    • true:删除成功

    • false:删除失败

  • 返回参数:

    {
        "traceId":"9bbd2088-6aeb-****-9ef3-082cc5a4f8f3",
        "code":null,
        "message":null,
        "data":true, 
        "success":true
    }
  • JAVA SDK 示例:

    public static void ForceDeleteUser() throws SDKException {
      HttpRequest request = HttpRequest.build()
            .setUri("/openapi/v2/organization/user/forceDelete")
            .setMethod(HttpMethod.DELETE)
            .setHttpContentType(FormatType.FORM);
        request.addParameter("userId", "ad00a0ef3e7b42****");
        // 非必填参数
        // request.addParameter("transferUserId", "0bff580a24f14e***");
        String result = openApiClient.syncExecute(request);
        System.out.println(result);
    }