本文为您介绍组织用户成员管理下的API接口(仅适用于独立部署用户)。
查询组织成员列表
接口路径:
/openapi/v2/organization/user
(GET)接口描述:获取组织下的用户列表,分页。
输入参数:
参数
数据类型
描述
是否必需
keyword
String
账户或者昵称的模糊搜索关键字。
主要搜索字段:accountName或nickName。
否
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/user
(POST)接口描述:向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}/exist
(GET)接口描述:判断指定的用户是否属于组织,存属关系在返回结果中以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/queryByAccount
(GET)接口描述:根据三方账号(三方账号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); }